过滤器解决全站乱码

来源:互联网 发布:怎么练淘宝模特动作 编辑:程序博客网 时间:2024/05/21 17:30

创建一个过滤器,设置请求访问编码

package com.hongyi.filter;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.http.HttpServletRequest;import javax.servlet.http.HttpServletRequestWrapper;import javax.servlet.http.HttpServletResponse;/** * 解决全站乱码问题 * @author 浪丶荡 * */public class CharacterEnCodingFilter implements Filter {    public void doFilter(ServletRequest req, ServletResponse resp,            FilterChain chain) throws IOException, ServletException {        HttpServletRequest request = (HttpServletRequest) req;        HttpServletResponse response = (HttpServletResponse) resp;        //对request/response进行预处理        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 config) throws ServletException {    }    public void destroy() {    }}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("post")){                return value;            }else{                value = new String(value.getBytes("utf-8"),this.request.getCharacterEncoding());                return value;            }        } catch (Exception e) {            throw new RuntimeException(e);        }    }}

配置太简单,不贴代码了

原创粉丝点击