Java中filter内处理重定向遇到的问题

这是在Java中filter内处理重定向遇到的问题。本意是写一个做URL rewrite 的filter,来重写URL,同时在处理登陆过程中要杀掉当前session,创建新session来代替。

1. 如果在filter中,先call了response.sendRedirect(),然后执行chain.doFilter(),然后在后续处理中把当前session invalidate,再create new session,遇到了错误:

java.lang.IllegalStateException: Cannot create a session after the response has been committed

2. 如果在filter中,先执行chain.doFilter(),再做session invalidate,create new session,然后在返回到filter中执行doFilter的后续部分,在这时候sendRedirect,就出现了下面的错误:

java.lang.IllegalStateException: Cannot call sendRedirect() after the response has been committed

看来这两种方式都行不通,之后找其他方法了。

原文地址:https://www.cnblogs.com/pekkle/p/7510834.html