首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

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

2012-08-25 
关于Filter中的两个异常,重定向后要加Return这是个很常见的问题,度娘和谷歌动手就能查到,可是今天还是遇到

关于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/

热点排行