我们知道tomcat的默认编码是iso8859-1,在上面跑web项目时需要注意编码问题。于是我在过滤器中写好了编码转换,将其转换成utf-8,配置文件中映射了所有根目录的文件
(<url-pattern>/*</url-pattern>)。之前做的都是表单提交,中文什么的一切OK。然而今天我在做下拉分类菜单,要保留选中的菜单条目是用到了url传中文参数,出现了乱码问题<-----get方法。无奈只能在该功能页中多写了一句:
String typeChooseName = req.getParameter("typeChooseName");
typeChooseName = new String(typeChooseName.getBytes("ISO-8859-1"), "UTF-8");
来进行编码转换。
想知道为什么Filter没有过滤 get 方法中参的参数 ,而post方法是有过滤的
以下是我在Filter过滤器中写的编码转换
public class EncodingFilter implements Filter {
String encoding = "utf-8";
public void init(FilterConfig filterConfig) throws ServletException {
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding(encoding);
response.setCharacterEncoding(encoding);
chain.doFilter(request, response);
}
public void destroy() {
}
}