Servlet——解决全站乱码问题(过滤器)

来源:互联网 发布:python 交易 行情平台 编辑:程序博客网 时间:2024/05/22 04:25
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;/** * 解决全站乱码问题 */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() {    }}//解决get请求的乱码问题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);        }    }}
原创粉丝点击