过滤器改变编码的实现
1、写好过滤器Java源文件文件(名称为:CharacterEncodingFilter)
package com.cky.firstStruts.common.CharacterEncodingFilter import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;/** 编码过滤器 */public class CharacterEncodingFilter implements Filter { String encoding = null; FilterConfig filterConfig = null; /** 初始化方法 */ public void init(FilterConfig filterConfig) throws ServletException { this.filterConfig = filterConfig; this.encoding = filterConfig.getInitParameter("encoding"); } /** 处理过滤方法 */ public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException { if(encoding != null){ //对请求进行编码设置 request.setCharacterEncoding(encoding); } //将处理权转交给下一个处理器 filterChain.doFilter(request, response); } /** 销毁方法 */ public void destroy() { this.encoding = null; this.filterConfig = null; }}?
过滤器文件就写好了,接下来就是配置了。
2、在XML配置
<!-- 配置过滤器 --> <filter> <filter-name>CharacterEncodingFilter</filter-name> <filter-class>com.cky.firstStruts.common.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>ignore</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>CharacterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
?最近记性很不好的.老是忘记东西,居然忘记过滤器要实现哪个类.看来不用真的很快忘记了!写一个记录一下.