Filter基础

Filter的开发流程:
      1.创建一个类,实现javax.servlet.Filter接口,实现其中三个方法
init(FilterConfig filterConfig)
doFilter(ServletRequest request,ServletResponse,FilterChain chain)
destroy()
其中,doFilter()方法中需要用chain.doFilter(request,response);方法,将request和response传给下一个资源,如servlet


      2.将Filter交给服务器来管理,在web.xml文件中进行下面的配置
<filter>
	<filter-name></filter-name>
	<filter-class>filter的全限定名</filter-class>
</filter>
<filter-mapping>
	<filter-name></filter-name>
	<url-pattern>指定对哪些资源进行过滤</url-pattern>
<filter-mapping>


执行顺序同项目配置,都是从映射开始找到对应的filter

filter中的url-pattern可以重复,表示同个资源需要经过不同的过滤器


也可用注解配置
@WebFilter("/")


多个filter时的执行顺序:
1.在web.xml文件中看各个filter的<filter-mapping></filter-mapping>的位置的先后顺序
2.使用注解时,需要在类名前加大写字母A、B、C...决定执行顺序


需要过滤页面的设置:在
<filter-mapping>
<dispatcher> REQUEST:正常的请求(缺省值)
ERROR:    错误页面跳转
FORWARD:请求转发
INCLUDE:请求包含
</dispacther>
</filter-mapping>
四种。不写默认是对REQUEST过滤


常见三种过滤器:
1.请求编码过滤器:
2.登录验证过滤器:
将需要通过登录后才能显示的页面的资源名称,先在web.xml文件中的<init-param>设置
在filter中设置一个全局变量集合,在初始化方法init()中获得上述的名称,在doFilter()方法中进行校验
3.敏感字过滤器:
先有一个工具类有对敏感字进行过滤的方法;编写一个继承HttpServletRequestWrapper类的类,重写getParameter()方法,调用工具类中的方法对接收的值进行过滤;filter中,形参先强转成HttpServletxxx类型的,再作为参数传给new出来的刚刚继承自HttpServletRequestWrapper类的对象,并把它通过chain.doFilter()方法交给servlet;servlet中拿到filter的req对象用getParameter()方法进行过滤
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值