|
![]() |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
〔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> 返回类别: 教程 上一教程: JB的调试方式(欢迎补充) 下一教程: jsp开发网站使用cookie的一点经验 您可以阅读与"JAVA:Filter编码器"相关的教程: · JavaScript escape/unescape编码的Java实现 · Java字符丢失与中文编码 · java编码中的一些经验和教训 · Java语言编码规范 选择自 hk_von 的 Blog · Java 程序编码规范 |
![]() ![]() |
快精灵印艺坊 版权所有 |
首页![]() ![]() ![]() ![]() ![]() ![]() ![]() |