Cannot create a session after the response has been committed

本文引自:http://chenkuning.iteye.com/blog/642106   仅作收藏,别无他意

某jsp include另一个jsp之后偶尔报错:Cannot create a session after the response has been committed

google之后发现可能是session的创建时机不对,不应该在include的jsp里面创建session(并没有显示调用request.getSession(),但jsp页面默认有pageContext.getSession()的),如是在当前页面中加入:request.getSession();既然时机不对,那么在加入到当前页面中时就创建session,被include的jsp中就不需要创建了。OK, 一切正常。

 

"Cannot create a session after the response has been committed的根本原因并不再request.getSession(),而是在jsp开头的<%@ page session="false" %>",boss发话了。boss今天咋这么闲,连jsp都不放过,之前只有在修改了framework才会有机会聆听教导的。行,那我改改。

 

于是去掉当前页面中的<%@ page session="false" %>,这样在访问当前页面时就创建session,include的jsp中再创建(实际上是获取)session就没有问题了。测试OK, 一切正常。

 

"除了去掉<%@ page session="false" %>还有其他的方案吗?",boss又发话了。"在当前页面和被include的页面中都加入<%@ page session="false" %>应该也可以解决问题。......","那你觉得为什么要禁用session呢?", "......", "

有session的页面有可能会影响到缓存,本来是一个可以缓存的页面,加上session就不能缓存了"。

 

session和缓存有什么关系?只得暂时将当前页面和include页面都加入<%@ page session="false" %>,以确保不出现不过&&可缓

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值