读书人

关于Filter中的两个错误重定向后要加

发布时间: 2012-08-25 10:06:20 作者: rapoo

关于Filter中的两个异常,重定向后要加Return

这是个很常见的问题,度娘和谷歌动手就能查到,可是今天还是遇到了,因为一直做业务研发,没有直接关注这些细节。

该文章来自ITeye,网络爬虫请自重!欢迎大家访问我的博客!

这两个异常如下:

public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {request.setCharacterEncoding("UTF-8");response.setCharacterEncoding("UTF-8");HttpServletRequest hrequest = (HttpServletRequest)request;String path = hrequest.getContextPath();String basePath = hrequest.getScheme()+"://"+hrequest.getServerName()+":"+hrequest.getServerPort()+path+"/";// 获得请求的全路径String reUrl = hrequest.getRequestURL().toString();// 是否包含参数int index = reUrl.indexOf("?");String re = "";if(index == -1){re = reUrl.substring(basePath.length());}else{re = reUrl.substring(basePath.length(), index);}// 是否是请求资源if(!isResource(re)){// 是否有访问的权限boolean isCheck = ConnUril.checkUrl(re);if(!isCheck){request.getRequestDispatcher("/error.jsp").forward(request,response);// 必须加返回,否则报错return ;}}// 继续执行chain.doFilter(request, response);}

?

报错原因很简单,转向后再去执行关于response的操作,就等于执行了两遍转向,因此会报错!

?

问题简单,也需要留意,再简单的问题也是问题,成功在细节和那些别人以为是傻冒的问题中。

为防止小网站爬虫转载,请你直接访问我的博客获得更多资源:http://cuisuqiang.iteye.com/

读书人网 >编程

热点推荐