首页 > 代码库 > Cannot create a session after the response has been committed
Cannot create a session after the response has been committed
有时候在操作Session时,系统会抛出如下异常
java.lang.IllegalStateException: Cannot create a session after the response has been committed
之所以会出现此类问题是因为我们在Response输出响应后才创建Session的。
(因为那时候服务器已经将数据发送到客户端了,即:就无法发送Session ID 了)
解决办法:
1.创建访问Session的语句【request.getSession()】提前至Response输出数据之前就好了。
例如改成下面的写法OK:
ServletOutputStream out = response.getOutputStream(); // 最好这样紧挨着 response.getOutputStream() HttpSession seesion = request.getSession(); seesion.setAttribute("xxx", rand); // 输出数据 out.print("<h1>hello</h1>"); out.close();
2.如果使用了Struts2可以在struts.xml中添加一个默认的拦截器:
<interceptor-ref name="createSession"/> <interceptor-ref name="defaultStack"/>
Cannot create a session after the response has been committed
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。