過濾器-解決中文亂碼問題

java的web程序經常出現中文亂碼的問題,用一個實現了Filter接口的過濾器類可以較好地解決這個問題。

 

新增過濾器類EncodingFilter

import java.io.IOException;

import javax.servlet.*;

 

public class EncodingFilter implements Filter {

 

    private FilterConfig filterConfig = null;

    private String encoding = null;

 

     @Override

    public void destroy() {

         filterConfig = null;

         encoding = null;

     }

 

     @Override

    public void doFilter(ServletRequest request, ServletResponse response,

             FilterChain filterChain) throws IOException, ServletException {

        if (request.getCharacterEncoding() == null) {

            if (encoding != null) {

                 request.setCharacterEncoding(encoding);

             }

             filterChain.doFilter(request, response);

         }

     }

 

     @Override

    public void init(FilterConfig filterConfig) throws ServletException {

        this.filterConfig = filterConfig;

        this.encoding = filterConfig.getInitParameter("encoding");

     }

}

 

 

web.xml中加入

  <filter>

      <filter-name>EncodingFilter</filter-name>

      <filter-class>EncodingFilter</filter-class>

      <init-param>

          <param-name>encoding</param-name>

          <param-value>UTF-8</param-value>

      </init-param>

  </filter>

  <filter-mapping>

      <filter-name>EncodingFilter</filter-name>

      <url-pattern>/*</url-pattern>

  </filter-mapping>

 

jsp頁面中設置pageEncoding="UTF-8" ,表單提交方法method="post"

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章