Servlet 過濾器是可用於 Servlet 編程的 Java 類,實現了javax.servlet.Filter接口。可以實現以下目的:


public void init(FilterConfig filterConfig)
web 應用程序啟動時,web 服務器將創建Filter 的實例對象,並調用其init方法,讀取web.xml配置,完成對象的初始化功能,從而為後續的用戶請求作好攔截的准備工作。Filter對象只會創建一次,init方法也只會執行一次。開發人員通過init方法的參數FilterConfig對象可獲得代表當前filter配置信息。
public void doFilter (ServletRequest, ServletResponse, FilterChain)
該方法完成實際的過濾操作,當客戶端請求訪問與過濾器設置匹配的URL時,Servlet容器將先調用過濾器的doFilter方法。FilterChain參數調用chain.doFilter方法,將請求傳給下一個過濾器或目標資源,或利用轉發、重定向將請求轉發到其他資源。
public void destroy()
Servlet容器在銷毀過濾器實例前調用該方法,在該方法中釋放Servlet過濾器占用的資源。
需要在web.xml中配置。


默認
<dispatcher>REQUEST</dispatcher>

<!--過濾器 解決亂碼--><filter><filter-name>encoding</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>utf-8</param-value></init-param></filter><filter-mapping><filter-name>encoding</filter-name><url-pattern>*</url-pattern></filter-mapping></pre><!--登錄過濾器--><filter><filter-name>userFilter</filter-name><filter-class>com.wx.login.filter.UserFilter</filter-class><init-param><param-name>Site</param-name><param-value>菜鳥網絡</param-value></init-param></filter><filter-mapping><filter-name>userFilter</filter-name><url-pattern>*</url-pattern></filter-mapping></pre>@WebFilter用於將一個類聲明為過濾器,該注解將會在部署時被容器處理,容器將根據具體的屬性配置將相應的類部署為過濾器。

