java.lang.IllegalStateException:JBWEB000232:响应提交后无法转发Occured

时间:2016-12-12 09:49:19

标签: java jsp servlets

我在做登录申请。我正在加密登录jsp中的用户名和密码参数,然后我将它发送到servlet。在servlet中,我解密了用户名和密码,并发送到LoginAction页面。代码如下

if(counter < loginLimit)
{

try{
    String sessionid = request.getSession(false).getId();
    response.setHeader("SET-COOKIE", "JSESSIONID=" + sessionid + "; HttpOnly");
 }
 catch(Throwable t)
{
    GenericExceptionLog.log("DPLoginActionServlet :::: getting error::"+loginId+"  @ "+new java.sql.Timestamp(new java.util.Date().getTime()),"DPLoginActionServlet");
}

RequestDispatcher reqdisp=request.getRequestDispatcher(postLogin);
reqdisp.forward(request,response);
return;

}

但它给我带来了好处 java.lang.IllegalStateException:JBWEB000232:响应提交后无法转发Occured

1 个答案:

答案 0 :(得分:0)

一般来说,你得到的错误都说:

  

java.lang.IllegalStateException:在提交响应后无法转发

在致电reqdisp.forward(request,response);之前,您已将数据写入response - 缓冲区 如果它超过缓冲区大小,则将其提交给浏览器 因此转发为时已晚。

你能做什么:

  • forward()电话和
  • 之前查看您的代码
  • 找到回复的写入位置
    • 移动你的if-block,forward()向上移动
    • 在回复写入
    • 周围添加附加条件块