过滤器中request 包装 tomcat7 乱码处理后 servlet 跳转 空白页

过滤器中request 包装 tomcat7 乱码处理后 servlet 跳转 空白页,第1张

过滤器中request 包装 tomcat7 乱码处理后 servlet 跳转 空白页

一下是过滤器处理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里没有写收到请求并处理请求的对应函数。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zaji/5712431.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-18

发表评论

登录后才能评论

评论列表(0条)

保存