Servlet有一個很有意思也很有用的功能,就是Filter。 所謂Filter,就是在用戶請求到達 Servlet 之前、或者 Servlet 執行之后, 執行的一段小程序,這段程序可以對用戶請求做預處理, 或者對Servlet返回的結果進行一些公用處理。
Filter可以在請求到達 Servlet 之前執行, 甚至即使請求一個靜態頁面或圖片等,Filter也會被優先執行。 這樣我們可以通過Filter對應用程序內的所有對象(包括Java程序和靜態內容)進行預處理。 (這個功能恐怕PHP程序就無法做到了。)
Filter通??捎糜谝韵聨追N情況:
•認證
•記錄訪問日志
•加密解密
•字符編碼轉換
•數據壓縮
如上面最常用的“認證”,可以在Filter中書寫認證代碼, 這樣不僅省卻了在Servlet中認證的麻煩,而且還能控制網站中靜態內容的訪問。
Filter是個接口,位于 javax.servlet.Filter。它與其他接口的關系如下:
復制代碼 代碼如下:
void init(FilterConfig filterConfig) throws ServletException
復制代碼 代碼如下:
void destroy()
復制代碼 代碼如下:
void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException
新聞熱點
疑難解答