自定義過濾器的處理方式
自定義的類
public class CharactorFilter implements Filter { //繼承Filter類 //字符編碼 String encoding=null; public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { if(encoding!=null){ //設置request字符編碼 request.setCharacterEncoding(encoding); //設置response字符編碼 response.setContentType("text/html;charset="+encoding); } //傳遞給下一個過濾器 chain.doFilter(request, response); } public void init(FilterConfig filterConfig) throws ServletException { //獲取初始化參數 encoding=filterConfig.getInitParameter("encoding"); } public void destroy() { // TODO Auto-generated method stub encoding=null; } }
在web.xml中進行配置
<filter> <!--注意這里是filter,不要配置成servlet--> <filter-name>CharactorFilter</filter-name> <!--過濾器名稱--> <filter-class>cn.com.Filter.CharactorFilter</filter-class> <!--過濾器的完整類名--> <init-param> <!--初始化參數--> <param-name>encoding</param-name> <!--參數名稱--> <param-value>utf-8</param-value> <!--參數值--> </init-param> </filter> <filter-mapping> <!--過濾器映射--> <filter-name>CharactorFilter</filter-name><!--過濾器名稱--> <url-pattern>/*</url-pattern><!--URL映射,給所有頁面處理亂碼--> </filter-mapping>
使用SpringMVC的處理方式
在web.xml配置
<filter> <!--注意這里是filter,不要配置成servlet--> <filter-name>CharactorFilter</filter-name> <!--過濾器名稱--> <filter-class>org.springframework.web.CharacterEncodingFilter</filter-class> <init-param> <!--初始化參數--> <param-name>encoding</param-name> <!--參數名稱--> <param-value>utf-8</param-value> <!--參數值--> </init-param> <init-param> <!--初始化參數--> <param-name>forceEncoding</param-name> <!--參數名稱--> <param-value>true</param-value> <!--參數值--> </init-param> </filter> <filter-mapping> <!--過濾器映射--> <filter-name>CharactorFilter</filter-name><!--過濾器名稱--> <url-pattern>/*</url-pattern><!--URL映射,給所有頁面處理亂碼--> </filter-mapping>
再在springMVC的配置文件中添加
<bean>標簽,引入該對象。