过滤器(Fileter)执行流程

Servlet过滤器的概念

  • Servlet过滤器是在 java Servlet 2.3 中定义的,它能够对Servlet容器中的请求和响应对象,进行检查和修改
  • Servlet过滤器并不会生成request和response对象,它只起到过滤的作用
  • Servlet过滤器会在请求还未到Servlet之前检查request对象,修改 Request Header 和 Request 内容;在Servlet被调用后检查Response对象,修改 Response Header 和 Response 内容
  • Servlet过滤器可以过滤 Servlet , JSP , HTML 等web组件(JSP最终也是转换为Servlet的)


定义一个Servlet过滤器(Fileter)

要想让一个类成为过滤器类,必须

  • 实现 java.servlet.Filter接口 
  • 实现三个方法:
    • init(FilterConfig filterConfig) - - -初始化  在Servlet容器创建过滤器实例的时候就会调用该方法(也就是服务器刚启动时会创建实例,该方法得到调用) , 这个方法可以读取web.xml文件中Servlet过滤器的初始化参数                                                                         
    • doFilter(ServletRequest request,ServletResponse response,FilterChain chain)   - - - 完成实际的过滤操作  这个方法得到调用后,里面重要的一点是要调用chain.doFilter(request,response)方法,来完成对下一个过滤器doFilterServletRequest request,ServletResponse response,FilterChain chain))方法的调用,如果没有下一个过滤器,则把客户请求传给相应的web组件                                                                                               
    • destroy()  - - -过滤器销毁阶段  Servlet容器在销毁过滤器实例之前该方法得到调用,以释放占用的资源


对web.xml文件进行配置 (以下配置信息要在Servlet程序的配置信息之前):

  <filter>
    <filter-name>FilterServlet2</filter-name>
    <filter-class>com.servlet.filter.FilterServlet2</filter-class>
    <init-param>
        <param-name>hello</param-name>
        <param-value>123</param-value>
    </init-param>
  </filter>

  
  <filter-mapping>
    <filter-name>FilterServlet2</filter-name>
    <url-pattern>/InfoServlet</url-pattern>
  </filter-mapping>

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

/InfoServlet 是过滤路径,而不是通过地址栏访问的,不像Servlet程序那样


Servlet过滤器(Fileter)执行流程































  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值