Cannot create a session after the response has been committed错误的原因

        今天练习时遇到了这个异常,貌似还挺常见的,于是百度了一下有关该异常的所有可能性:

2013-10-28 12:19:18 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet jsp threw exception
java.lang.IllegalStateException: Cannot create a session after the response has been committed
	at org.apache.catalina.connector.Request.doGetSession(Request.java:2313)
	at org.apache.catalina.connector.Request.getSession(Request.java:2074)
	at org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:833)
	at org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:844)
	at com.demo.filter.LogFilter.doFilter(LogFilter.java:35)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.demo.filter.CharacterFilter.doFilter(CharacterFilter.java:24)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
	at java.lang.Thread.run(Thread.java:619)

 

可能原因:
1.resp一旦返回(调用有关resp的方法),就不能再获得请求的session值(网上有说是sessionID被销毁了),那么在resp后就禁止getSession之类的方法,否则出错。

2.filter里的chain.doFilter()后没有返回语句,一说是安全,但不一定是在chain.doFilter()后就要返回,总之在最后没有任何操作了之后,还是return;一下好。

3.这个应该是我的程序抛出异常的原因,sql语句写错了。

4.(这个不知道是不是,没测试过)该写成getParameter()的地方写成getAttribute()了。

时间紧,很多都是查出来的,没有验证,这种学习态度不行,但实在没办法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值