標籤:java servlet filter web.xml
Java Filter在服務容器啟動時就會被載入,其載入順序與web.xml中註冊的順序一致。
Servlet3.0以下,需要使用以下定義在web.xml中註冊。
<fileter> <filter-name></filter-name> <filter-class></filter-class> <init-param> <param-name></param-name> <param-value></param-value> </init-param></filter><filter-mapping> <filter-name></filter-name> <servlet-name></servlet-name> <url-pattern></url-pattern></filter-mapping>
Servlet 3.0以上,可以直接在類檔案中以注釋方式註冊Filter.
@WebFilter(filterName="", urlPatterns={}, initParams={@WebInitParam(name="", value="")})
當使用者向伺服器發送一個請求時,Tomcat會先建立一個類型為HttpServletRequest的請求對象和一個類型為HttpServletResponse的響應對象。然後判斷客房請求的URL地址或是相應的Servlet是否有定義Filter,如果有,則調用其doFilter方法。在此方法中,有一個很重要的語句,即china.doFilter(request, response);如果希望繼續執行客房端請求的Servlet或是URL則一定要有此行代碼,否則,過濾器認為不給予允許存取,客戶請求將會被過濾掉。
在web.xml中定義過濾時指定的參數,可以通過過濾器類中的init()方法讀取。
public void init(FilterConfig config) throw ServletException { String encoding = cofig.getInitParamter("encoding");....}
Java Servlet學習筆記(二)