关于java,过滤html请求的Filter中跳转页面的问题。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于java,过滤html请求的Filter中跳转页面的问题。相关的知识,希望对你有一定的参考价值。

我有一个Fiter类,这个类拦截的是*.htm和*.html请求的页面。
我在这个类中用response.sendRedirect()方法跳转到一个error.html页面,
这个页面负责输出一条alert语句和跳转到登录页面。
当我在没有登录的情况下第一次访问一个此项目后台html页面的时候一切正常。
成功跳转到登录页面。
当我在没有登录的情况下再一次访问这个项目的后台HTML页面的时候
报了一个错误如下:
--------------------------------------------------------------------------
严重: Servlet.service() for servlet default threw exception
java.lang.IllegalStateException: Cannot forward after response has been committed
--------------------------------------------------------------------------
当我在不登录的情况下再一次请求这个地址时,又恢复正常。
再一次就报这个错,也就是说隔一次好使一次。不知为何,苦想了1天啊。
所以上来问问各位大神。希望有哪位大神可以帮我解决。

参考技术A 一种解决方法 在response.sendRedirect()后面加上return。这种如果不行的话。
response.sendRedirect("error.jsp");error.jsp的完整路径加上。因为Fiter类是针对整个项目进行拦截的。
参考技术B response.sendRedirect()这句话后面的代码应该是被检测到可能会被执行,你用if else将代码块分好,这样应该是没问题的 参考技术C 你就想定义一个filter一样定义两个filter就可以。在filter中不是有一个filterchain么,他就是把请求传递给下一个filter去处理的。 参考技术D 肯定是逻辑问题
请把你的代码贴上来,可以分析 下。
if(包含某后缀名)
重定向

dofilter(...)本回答被提问者采纳
第5个回答  2010-12-29 有点不清楚 想看看你的代码 383808552

以上是关于关于java,过滤html请求的Filter中跳转页面的问题。的主要内容,如果未能解决你的问题,请参考以下文章

关于登录filter拦截的一些思考

使用jquery输入文本字段过滤会导致游标在IE和Chrome中跳转

如何在java中跳过过滤器链中的过滤器

filter过滤器实现验证跳转_返回验证结果

Java过滤器引发的异常:Resource interpreted as Stylesheet but transferred with MIME type text/html

过滤器(java.filter)和拦截器(springmvc.interceptor)区别