首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

struts 1.x 过滤器 解决中文乱码有关问题(转)

2012-08-22 
struts 1.x 过滤器 解决中文乱码问题(转)1. 编写处理字符编码的Filter类:package yours.packageimport ja

struts 1.x 过滤器 解决中文乱码问题(转)
1. 编写处理字符编码的Filter类:

 

 package yours.package;   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 {      protected String encoding = null;      protected FilterConfig filterConfig = null;      protected boolean ignore = true;      public void destroy() {          this.encoding = null;          this.filterConfig = null;      }     public void doFilter(ServletRequest request, ServletResponse response,            FilterChain chain)throws IOException, ServletException {            if (ignore || (request.getCharacterEncoding() == null)) {                String encoding = selectEncoding(request);                if (encoding != null)                request.setCharacterEncoding(encoding);            }            chain.doFilter(request, response);       }      public void init(FilterConfig filterConfig) throws ServletException {         this.filterConfig = filterConfig;          this.encoding = filterConfig.getInitParameter("encoding");          String value = filterConfig.getInitParameter("ignore");          if (value == null)              this.ignore = true;          else if (value.equalsIgnoreCase("true"))              this.ignore = true;          else if (value.equalsIgnoreCase("yes"))              this.ignore = true;          else              this.ignore = false;      }      protected String selectEncoding(ServletRequest request) {          return (this.encoding);      }  }


2.修改WEB-INF/web.xml文件

   <filter>        <filter-name>CharacterEncoding</filter-name>        <filter-class>yours.package.CharacterEncodingFilter</filter-class>        <init-param>            <param-name>encoding</param-name>            <param-value>GB2312</param-value>        </init-param>        <init-param>            <param-name>ignore</param-name>            <param-value>true</param-value>        </init-param>  </filter>  <filter-mapping>    <filter-name>CharacterEncoding</filter-name>    <servlet-name>action</servlet-name>  </filter-mapping>

热点排行