〔CharacterEncodingHttpServletRequestWrapper.java〕 package creator.common.filter; import javax.servlet.http.*; public class CharacterEncodingHttpServletRequestWrapper extends HttpServletRequestWrapper {     private String ecoding = null;     private String oldEncoding = null;     public CharacterEncodingHttpServletRequestWrapper(HttpServletRequest request,String encoding) {         super(request);         this.ecoding = encoding;         this.oldEncoding = request.getCharacterEncoding();     }     public String getParameter(String value) {         try{             if((oldEncoding == null || isIOS88591(oldEncoding)) && super.getParameter(value)!=null){                 return new String(super.getParameter(value).getBytes("iso-8859-1"),ecoding);             }             else{                 return super.getParameter(value);             }          }         catch(Exception e){             e.printStackTrace();             return null;         }     }     private boolean isIOS88591(String endcoding){         endcoding = endcoding.toLowerCase();         return endcoding.startsWith("iso")&& (endcoding.indexOf("8859") != -1) && endcoding.endsWith("1");     } }
  〔CharacterEncodingHttpServletResponseWrapper.java〕 package creator.common.filter; import javax.servlet.http.*; public class CharacterEncodingHttpServletResponseWrapper extends HttpServletResponseWrapper {     private String ecoding = null;     public CharacterEncodingHttpServletResponseWrapper(HttpServletResponse response,String encoding) {         super(response);         this.ecoding = encoding;     }     /* (non-Javadoc)      * @see javax.servlet.ServletResponse#setContentType(java.lang.String)      */     public void setContentType(String value) {         super.setContentType("text/html;charset="+ecoding);     } }
  〔CharsetEncodingFilter.java〕 package creator.common.filter; import java.io.IOException; import javax.servlet.*; import javax.servlet.http.*;  public class CharsetEncodingFilter implements Filter {     private FilterConfig config = null;     private String RequestEncoding = null;     private String ResponseEncoding = null;
     public void init(FilterConfig arg0) throws ServletException {         this.config = arg0;         this.RequestEncoding = config.getInitParameter("RequestEncoding");         this.ResponseEncoding = config.getInitParameter("ResponseEncoding");     }     /* (non-Javadoc)      * @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)      */     public void doFilter(ServletRequest req, ServletResponse res, FilterChain fc)         throws IOException, ServletException {         if(this.config == null){             return;         }         HttpServletRequest request = (HttpServletRequest)req;         HttpServletResponse response = (HttpServletResponse)res;         CharacterEncodingHttpServletRequestWrapper  mrequestw  = new CharacterEncodingHttpServletRequestWrapper(request,ResponseEncoding);         CharacterEncodingHttpServletResponseWrapper wresponsew = new CharacterEncodingHttpServletResponseWrapper(response,ResponseEncoding);         fc.doFilter(mrequestw,wresponsew);     }     public void destroy() {     } }
  〔web.xml〕   <filter>     <filter-name>CharsetEncoding</filter-name>     <filter-class>javabean.com.CharsetEncodingFilter</filter-class>     <init-param>       <param-name>RequestEncoding</param-name>       <param-value>iso-8859-1</param-value>     </init-param>     <init-param>       <param-name>ResponseEncoding</param-name>       <param-value>gb2312</param-value>     </init-param>   </filter>   <filter-mapping>     <filter-name>CharsetEncoding</filter-name>     <url-pattern>/*</url-pattern>   </filter-mapping>  
 
  |