[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 charstencodingfilter imports filter {private filterConfig config = 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 oException, 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]