filter

------------------------------------------------------------------------------------------------------------------------------------

什么是过滤器?

与Servlet相似,过滤器是一些web应用程序组件,可以绑定到一个web应用程序档案中。但是与其他web应用程序组件不同的是,过滤器是" 链"在容器的处理过程中的。这就意味着它们会在servlet处理器之前访问一个进入的请求,并且在外发响应信息返回到客户前访问这些响应信息。这种访问 使得过滤器可以检查并修改请求和响应的内容。

--------------------------------------------------------------------------------------------------------------------------------------

过滤器适用于那些地方?

1.为一个web应用程序的新功能建立模型(可被添加到web应用程序中或者从web应用程序中删除而不需要重写基层应用程序代码);

2.向过去的代码添加新功能。

--------------------------------------------------------------------------------------------------------------------------------------

过滤器放在容器结构的什么位置?

过滤器放在web资源之前,可以在请求抵达它所应用的web资源(可以是一个Servlet、一个Jsp页面,甚至是一个HTML页面)之前截获进 入的请求,并且在它返回到客户之前截获输出请求。

--------------------------------------------------------------------------------------------------------------------------------------

Filter:用来拦截请求,处于客户端与被请求资源之间,目的是重用代码。Filter链,在web.xml中哪个先配置,哪个就先调用。在 filter中也可以配置一些初始化参数。

Filter的使用步骤

1.写Filter类

implements javax.servlet.Filter接口重写Filter接口中的方法 init(FilterConfig),doFilter(ServletRequest req,ServletResponse res,FilterChain filter),destroy()

2.在web.xml中进行配置

<filter>

     <filter-name>filterName</filter-name>

     <filter-class>filterClass</filter-class>

</filter>

<filter-mapping>

     <filter-name>filterName<filter-name>

     <url-pattern>url</url-pattern>

</filter-mapping>

----------------------------------------------------------------------------------------------------------------------------------

Filter的生命周期:过滤器的四个阶段(与Servlet类似):

1.实例化

2.初始化(调用init()方法);---->init(FilterConfig)由容器调用,并且只调用一次

3过滤(调用doFilter()方法)---->doFilter(ServletRequest req,ServletResponse res,FilterChain filter)访问限定资源时被调用,会被调用多次,注意考虑多线程问题,处理方式和Servlet中的一样。

4.销毁(调用destroy()方法);--->destroy()由容器调用,并且只调用一次。

filter.doFilter(req,res):可以被认为是处理请求和响应的分界线,在filter.doFilter(...)前处理请 求,在filter.doFilter(...)后处理响应。

主要:一旦写了Filter一定要在Filter.doFilter(...)中调用FilterChain.doFilter()方法,将请求皆 有其他资源继续处理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值