博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
过滤器
阅读量:7199 次
发布时间:2019-06-29

本文共 927 字,大约阅读时间需要 3 分钟。

三大组件之一,servlet+listener+filter

三大组件的共性:都需要在xml文件中配置。

过滤器的作用:一般放在一组资源(servlet、jsp、css、HTML)前面执行。

主要是过滤掉一些不符合条件的请求。

所以说,过滤器有拦截强求的能力。

过滤器如何编写:

第一步:编写一个类,继承filter接口。

第二步:在xml文件中配置。

和servlet对比来看,filter和servlet很像,也有三大生命周期方法。

servlet是init(),destory(),service();

filter是init(),destory(),doFilter(),

它们两者都是在服务器第一次调用的时候创建。

有的说法是在服务器刚启动是就创建,这句话我不认同,如果一个java项目中有多个servlet和filter,难道在刚刚启动的时候就都同时创建么???

所以我认为它们都是在服务器第一次调用的时候创建。

销毁就不用说了,在服务器关闭的时候销毁。

之前我们知道,servlet是单例的,那么filter也是单例的。

配置文件中,只需要将servlet改成filter即可。

以上是Afilter拦截AServlet的配置文件。

filterConfig和servletConfig相似,

获取初始化参数。

获取filter名称。

获取application对象即servletContext;

三大生命周期方法的其中之一doFilter(servletRequest,servletResponse,filterChain)

这三个参数的最后一个参数后一个方法为dofilter(servletRequest,servletResponse)方法,主要是用来放行。所谓放行就是执行过滤器的下一个过滤器或目标资源。

 

过滤器四中拦截方式。

1、请求

2、转发

3、包含

4、错误

在配置文件中设置拦截的四中方式,其中request为默认方式。

应用场景:根据条件决定是否放行,比如校验用户是否已经登录,或者改用户的IP是否已被禁用。

 

转载于:https://www.cnblogs.com/hanmengdi/p/9513379.html

你可能感兴趣的文章
lamp安装
查看>>
ubuntu 上的ruby安装
查看>>
ubuntu 16.04 安装jdk9错误
查看>>
设计模式之单例模式探究
查看>>
webpack相关
查看>>
jQuery的三种$()
查看>>
bzoj 2654: tree
查看>>
回文数的判断
查看>>
PLSQL_案例优化系列_体会索引让SQL举步维艰的一面(案例6)
查看>>
OAF_架构MVC系列4 - Control的概述(概念)
查看>>
ny2 括号配对问题
查看>>
再续mysql编码问题
查看>>
【线段树合并】【P2824】 [HEOI2016/TJOI2016]排序
查看>>
【Java】native关键字
查看>>
HTML基础知识 table中 th,td,tr
查看>>
SQLite datatype
查看>>
续Gulp使用入门编译Sass
查看>>
分布式中Redis实现Session终结篇
查看>>
access调用联系
查看>>
基础公共样式设置
查看>>