解决全站乱码过滤器
来源:互联网 发布:淘宝上二手房翻新 编辑:程序博客网 时间:2024/05/22 09:47
中文乱码真的很讨厌,如果每次请求都使用request设置一下编码真的麻烦,我们可以使用过滤器filter来显示全站的乱码问题
package web.filter;import java.io.BufferedReader;import java.io.IOException;import java.io.UnsupportedEncodingException;import java.security.Principal;import java.util.Enumeration;import java.util.Locale;import java.util.Map;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.RequestDispatcher;import javax.servlet.ServletException;import javax.servlet.ServletInputStream;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.Cookie;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletRequestWrapper;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;//解决全站乱码过滤器public class CharacterEncodingFilter implements Filter { public void destroy() { // TODO Auto-generated method stub } public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) req; HttpServletResponse response = (HttpServletResponse) resp; request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=UTF-8"); MyCharacterEncodingRequest requestWrapper = new MyCharacterEncodingRequest(request); chain.doFilter(requestWrapper, response); } public void init(FilterConfig filterConfig) throws ServletException { // TODO Auto-generated method stub }}/*1.实现与被增强对象相同的接口2、定义一个变量记住被增强对象3、定义一个构造器,接收被增强对象4、覆盖需要增强的方法5、对于不想增强的方法,直接调用被增强对象(目标对象)的方法*/class MyCharacterEncodingRequest extends HttpServletRequestWrapper{ private HttpServletRequest request; public MyCharacterEncodingRequest(HttpServletRequest request) { super(request); this.request = request; } @Override public String getParameter(String name) { try{ String value= this.request.getParameter(name); if(value==null){ return null; } if(!this.request.getMethod().equalsIgnoreCase("get")) { return value; } value = new String(value.getBytes("ISO8859-1"),this.request.getCharacterEncoding()); return value; }catch (Exception e) { throw new RuntimeException(e); } }}
然后在web.xml中配置filter拦截所有请求
<filter> <filter-name>CharacterEncodingFilter</filter-name> <filter-class>web.filter.CharacterEncodingFilter</filter-class> </filter> <filter-mapping> <filter-name>CharacterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
0 0
- 解决全站乱码过滤器
- 全站乱码解决过滤器
- 过滤器解决全站乱码
- 字符过滤器,解决全站乱码
- 统一全站乱码解决过滤器
- 过滤器应用之解决全站乱码
- 过滤器-用包装类解决全站乱码
- 过滤器-用动态代理解决全站乱码
- Filter 过滤器解决全站中文乱码问题
- 过滤器的应用之全站乱码解决--Filter(二)
- 用过滤器解决全站中文数据提交乱码问题
- 过滤器应用之解决全站中文乱码问题
- 过滤器案例----解决全站中文乱码问题
- Servlet——解决全站乱码问题(过滤器)
- 使用过滤器解决全站中文乱码问题
- day19全站中文乱码过滤器
- JSP过滤器(Filter)之实现全站解决中文提交乱码(包括get提交方式)
- 解决全站乱码的过滤器实现-包装类设计模式的应用
- 利用Token机制解决重复重复提交问题
- python字符编码惯用法
- 正式开通~
- ubuntu 更换桌面为 KDE
- 初学mongodb笔记-搭建环境
- 解决全站乱码过滤器
- Codeforces #277.5 (Div.2 A~F)
- 带图片的Toast
- jquery 获取并解析哈工大ltp-cloud返回的json数据
- Ubuntu 12.04.1 下搭建 Python3.4.2 + Qt5.3.2 + PyQt5.11.3 + Eric6.0 开发平台
- 解决全站压缩Filter
- zoj 3836 Circulation pipe , exgcd
- 写在微信第一次迭代后
- CentOS7.0安装