過濾器(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

相關文章
相關標籤/搜索