今晚在写Filter时首次遇到java.lang.IllegalStateException异常,很快百度就找到以下解决方法:
在response.sendRedirect()方法后加return语句即可
所给出的方法和遇到的情况是相同的,都是使用了在response.sendRedirect()方法!
加上了return ; 后的确没有了这个异常的提示!但是页面却好长时间都没有显示,或者说根本显示不了,无法跳转到需要的页面!
后来偶然间作了些修改:
把
((HttpServletResponse) response).sendRedirect("index.jsp");
改为
((HttpServletResponse) response).sendRedirect("/pro/index.jsp");
就是跳转的地址由index.jsp改为/项目名/index.jsp,这样Ok了!
原因:
我的Filter所设置的过滤访问是xx文件夹下的所有页面请求,即对/项目名/xx/*进行过滤检查!
如果跳转地址只是index.jsp,没有指明是根目录下的index.jsp,Filter可能在不断地执行;(我猜出来的原因)
指明了/项目名/index.jsp,跳转页面的位置明确了,Filter就更快捷地执行!
本文转自 Icansoft 51CTO博客,原文链接:
http://blog.51cto.com/android/55780