1.封装request对象,并做乱码处理逻辑
public class EncodingHttpServletRequestWrapper extends HttpServletRequestWrapper {
public EncodingHttpServletRequestWrapper(HttpServletRequest request) {
super(request);
}
@Override
public String getParameter(String name) {
String param = super.getParameter(name);
try {
byte[] buf = param.getBytes("ISO-8859-1");
param = new String(buf,"UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return param;
}
}
2. 编写filter 对get求情的request 对象 进行处理,把这个request对象 换成自己编写的requestwrapper对象.
public class EncodingFilter implements Filter {
private HttpServletRequest req;
public EncodingFilter() {
}
public void destroy() {
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
req = (HttpServletRequest) request;
if("GET".equals(req.getMethod())){
req = new EncodingHttpServletRequestWrapper((HttpServletRequest) request);
}
chain.doFilter(req, response);
}
public void init(FilterConfig fConfig) throws ServletException {
}
}
3.在web.xml文件中配置filter. 最好是利用工具 在创建filter类的过程中,自动生成以下配置。
<filter>
<description>
</description>
<display-name>EncodingFilter</display-name>
<filter-name>EncodingFilter</filter-name>
<filter-class>com.fullwisdom.filter.EncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>EncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>