现在的位置: 首页 > 综合 > 正文

一个简单的字符编码格式过滤器

2018年08月12日 ⁄ 综合 ⁄ 共 1499字 ⁄ 字号 评论关闭
  1. import java.io.IOException;
  2. import javax.servlet.Filter;
  3. import javax.servlet.FilterChain;
  4. import javax.servlet.FilterConfig;
  5. import javax.servlet.ServletException;
  6. import javax.servlet.ServletRequest;
  7. import javax.servlet.ServletResponse;
  8. /**
  9.  * 过滤器类,用于将用户的所有请求信息转化为指定的编码格式
  10.  * 需要在Web.xml配置文件中指定charset的值,默认值为UTF-8,例如:GB2312
  11.  * @author 李文锴
  12.  */
  13. public class CharsetCodingFilter implements Filter {
  14.     private String charset = "UTF-8";
  15.     /**
  16.      * 获取配置信息中配置的编码方式,如果没有配置,则使用默认的UTF-8编码
  17.      * @param filterConfig
  18.      * @throws javax.servlet.ServletException
  19.      */
  20.     public void init(FilterConfig filterConfig) throws ServletException {
  21.         String newCharset = filterConfig.getInitParameter("charset");
  22.         if (newCharset != null) {
  23.             this.charset = newCharset;
  24.         }
  25.     }
  26.     /**
  27.      * 设定编码方式,并执行下一个filter
  28.      */
  29.     public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
  30.         request.setCharacterEncoding(charset);
  31.         chain.doFilter(request, response);
  32.     }
  33.     public void destroy() {
  34.     }
  35. }

Web.xml的配置:

  1.     <filter>
  2.         <filter-name>CharsetCodingFilter</filter-name>
  3.         <filter-class>com.yunda.filter.CharsetCodingFilter</filter-class>
  4.         <init-param>
  5.             <param-name>charset</param-name>
  6.             <param-value>UTF-8</param-value>
  7.         </init-param>
  8.     </filter>
  9.     <filter-mapping>
  10.         <filter-name>CharsetCodingFilter</filter-name>
  11.         <url-pattern>/*</url-pattern>
  12.     </filter-mapping>

 

 

抱歉!评论已关闭.