学习Javaweb第十一天


一、过滤器(Filter)

过滤器实际上就是对web资源进行拦截,做一些处理后再交给下一个过滤器或servlet处理
通常都是用来拦截request进行处理的,也可以对返回的response进行拦截处理
在这里插入图片描述
应用场景
自动登录
统一设置编码格式
访问权限控制
敏感字符过滤等

二、Filter的开发和使用

1.开发

(1):自定义一个类(XxxFilter,Xxx表示功能名),实现于javax.servlet.Filter接口.

(2):在web.xml中做配置,告诉Tomcat来帮我管理这一个类(负责了该类的生命周期).

代码如下(示例):

使用:@WebFilter("/hello.jsp")      
 
或者在web.xml里面设置拦截器
 
<filter>          
 
<filter-name>XxxFilter</filter-name>         
 
  <filter-class>XxxFilter类的全限定名</filter-class>
 
</filter>     
 
 <filter-mapping>          
 
<filter-name>XxxFilter</filter-name>          
 
<!--表示:当前Filter只对哪些资源做过滤/拦截操作,只对hello.jsp做拦截-->          
 
<url-pattern>/hello.jsp</url-pattern>      
 
</filter-mapping>

Filter的生命周期方法

(1):void init(FilterConfig config): 初始化方法 
(2):void doFilter(ServletRequest request, ServletResponse response, FilterChain chain):执行过滤的方法(每一次请求都会执行过滤) 
(3):void destroy():销毁方法 执行的流程:   在启动Tomcat服务器的时候,就会执行构造器和init方法.     构造器--->init方法   -----> (  doFilter方法  )N次------->destroy方法

chain:链,链条,多个链的节点组合而成.

FilterChain:过滤器链,多个过滤器按照一定的顺序排列在一起.

FilterChain.doFilter(req,resp):放行(放行给下一个Filter或资源)

2.Filter映射细节

1、多个Filter共存的时候,拦截的先后顺序由谁来决定?

由的配置先后顺序来决定.

2、Filter的对哪些资源做过滤.:

被过滤的资源名称

/hello.jsp:只对/hello.jsp做过滤.

/*:对所有的资源做过滤操作.

/system/*:只对以/system/打头的资源做过滤.

*.do:只对以.do结尾的资源做过滤

3、可以通过元素来给当前Filter配置初始化参数.

通过FilterConifg对象.getInitParameter(String name)来获取初始化参数.

4、Servlet,Filter,Listener都属于Web组件.

一般的,先配置监听器,再配置过滤器,最后配置Servlet.

5、中的子元素表示对哪些操作执行过滤.

请求编码过滤器:CharacterEncodingFilter
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值