posts - 431,  comments - 344,  trackbacks - 0

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;

import javax.servlet.UnavailableException;

public class SetCharacterEncodingFilter implements Filter {

    /**    

      * The default character encoding to set for requests that pass through this filter.    

      */

       protected String encoding=null;

       /**    

         * The filter configuration object we are associated with.  If this value    

         * is null, this filter instance is not currently configured.    

         */

       protected FilterConfig filterConfig=null;

    /**    

      * Should a character encoding specified by the client be ignored?    

      */

       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;

       }

       private String selectEncoding(ServletRequest request) {

              return (this.encoding);

       }

}

web.xml 文件里添加

<filter>

      <filter-name>Set Character Encoding</filter-name>

      <filter-class>com.netmarch.struts.filters.SetCharacterEncodingFilter</filter-class>

      <init-param>

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

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

      </init-param>

  </filter>

  <filter-mapping>

      <filter-name>Set Character Encoding</filter-name>

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

  </filter-mapping>
posted on 2006-09-04 16:32 周锐 阅读(151) 评论(0)  编辑  收藏 所属分类: JavaJsp

只有注册用户登录后才能发表评论。


网站导航: