过滤器(Fileter)执行流程

Servlet过滤器的概念 html

  • 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

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

  • 实现 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程序的配置信息以前): 服务器

[html]  view plain copy
  1. <span style="font-size:18px;">  <filter>  
  2.     <filter-name>FilterServlet2</filter-name>  
  3.     <filter-class>com.servlet.filter.FilterServlet2</filter-class>  
  4.     <init-param>  
  5.         <param-name>hello</param-name>  
  6.         <param-value>123</param-value>  
  7.     </init-param>  
  8.   </filter>  
  9.   
  10.     
  11.   <filter-mapping>  
  12.     <filter-name>FilterServlet2</filter-name>  
  13.     <url-pattern>/InfoServlet</url-pattern>  
  14.   </filter-mapping></span>  

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

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


Servlet过滤器(Fileter)执行流程 spa

相关文章
相关标签/搜索