一下是过滤器处理tomcat 7 乱码问题
@WebFilter("
class MyWapper extends HttpServletRequestWrapper {
// 定义成员变量 HttpServletRequest对象 (提升构造器中request对象的作用域)
private HttpServletRequest request;
public MyWapper(HttpServletRequest request) {
super(request);
this.request = request;
}
@Override
public String getParameter(String name) {
// 获取参数 (乱码的参数值)
String value = request.getParameter(name);
// 判断参数值是否为空
if (StrUtil.isBlank(value)) {
return value;
}
// 通过new String()处理乱码
try {
value = new String(value.getBytes("ISO-8859-1"), "UTF-8");
} catch (Exception e) {
e.printStackTrace();
}
return value;
}
}
@Override
public void destroy() {
}
}
注意:高版本的chrome 浏览器默认编码是utf-8,tomcat7 的那一段判断版本的代码可以去掉,因为request.setCharacterEncoding("UTF-8")就已经设置成了编码解码方式,和浏览器一样,所以在取值的时候不会乱码。
注意:在获取request对象中的属性的时候,可以先判断是否为空,抛出异常,这样页面空白或者无法访问时容易定位bug位置。
注意:在filter 中请求转发只要复合过滤规则还会再次进入过滤器,再一次的条件注意要与请求转发的条件不同,避免死循环。
tomcat 空白页 没有任何信息的原因最有可能是:提交到的servlet 的参数缺省,或者是servlet里没有写收到请求并处理请求的对应函数。


