
我把request作为参数 传入定时器,目的是为了定时清除request.getSession()中的内容

但是定时器清除request.getSession()中的内容时报错了,NullPointException,我断点查看了一下,这个request确实传入定时器了,不过reqesut.getSession()为NULL。这是为何?谁能解决此问题?
------解决思路----------------------
本来就该直接传session 。。因为session是存活在一个对话期的 ,而request是存活在一次 请求中的 。。楼主那样传request实际上已经 脱离了它生命周期
------解决思路----------------------
完全是瞎扯,在request生命周期没有结束之前类和类之间随便玩。
你这个是因为在TimerTask的新线程里reqesut生命周期早就结束了(请求别告诉我你不知道啊,请求完毕就结束了),你得到的东西当然是空。
而session的生命周期是整个回话过程,就算请求结束了,会话不结束也是存在的。
------解决思路----------------------
非常准确,先把概念行设计弄清楚。request 完成之后就消失了,就算你还看到它,但服务器并不保证它的状态依然是正确的,因为与服务器关联的东西已经不一致了(服务器已经销毁了关联的状态)。就算你的代码在 tomcat 上能工作也不代表它在 jboss 上还能工作,因为这段代码本身就不符合设计要求。