java.lang.IllegalStateException:提交响应后无法创建会话

Flo*_*rin 0 session state exception response cgi-bin

我收到了一个对无效 URL 的非常奇怪的请求:

Invalid URL: /cgi-bin/1st.cgi
Run Code Online (Sandbox Code Playgroud)

这导致以下错误:

 SEVERE: Exception initializing page context
java.lang.IllegalStateException: Cannot create a session after the response has been committed
        at org.apache.catalina.connector.Request.doGetSession(Request.java:2381)
        at org.apache.catalina.connector.Request.getSession(Request.java:2098)
        at org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:833)
        at javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServletRequestWrapper.java:216)
        at org.apache.catalina.core.ApplicationHttpRequest.getSession(ApplicationHttpRequest.java:544)
...
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

Ber*_*sch 5

发生的事情是响应流已关闭。您已经发送了重定向,或者提交了其他类型的响应。我建议在执行任何响应之前获取会话对象,并保存响应直到与HttpServletRequestHttpServletResponse对象无关。

一个好的做法是在执行重定向后立即从 Servlet 返回,这样可以避免其中一些问题。