session监听我光知道有两种方法可以做到
一个是HttpSessionListener,但这种方法监听的是所有的session,我如果在sessionDestroyed方法中判断该失效的session是我需要监听的用户session?
另一个是HttpSessionBindingListener,这种方法需要将这个监听器通过session.setAttribute("userSessionListener",new SessionListener(user))绑定到一个session中,而且此方法监听的是userSessionListener这个session,可我想监听的是封装user对象的session,这可如何是好?
另外就是cookies了,需要将用户对象序列化以及反序列化,难道每次取的时候都要反序列化一下cookies?那企不是很麻烦?
大家有没有好的办法让我实现监听用户对象session的方法?
6 个解决方案
#1
up
up
up
up
up
up
up
#2
写一个定时器,每隔一段时间去侦听用户,差不多就是心跳的意思。
#3
其实很简单,你写一个线程,每隔一定时间,把你要的session取出来,看看它什么状况,然后做相关操作,就可以,用监听很麻烦。说到底监听的本质其实就是一个线程,它不断去监看某个对象怎么样了。道理都是一样的。线程会写吧,不会的话,就不怪你听不懂了
#4
就第一个呀,只有失效的session才会触发那个sessionDestroyed方法,到底是那个session,根据session里的标识符判断就可以了。标识符可以是session id,也可以是你自己放在session的User对象。
#5
楼上说得很正确
#6
谢谢楼上的好心人们。。问题已经解决。。用的4楼的方法,3楼关于线程的问题真没接触过。不过也谢谢你。。开始散分喽。。。
#1
up
up
up
up
up
up
up
#2
写一个定时器,每隔一段时间去侦听用户,差不多就是心跳的意思。
#3
其实很简单,你写一个线程,每隔一定时间,把你要的session取出来,看看它什么状况,然后做相关操作,就可以,用监听很麻烦。说到底监听的本质其实就是一个线程,它不断去监看某个对象怎么样了。道理都是一样的。线程会写吧,不会的话,就不怪你听不懂了
#4
就第一个呀,只有失效的session才会触发那个sessionDestroyed方法,到底是那个session,根据session里的标识符判断就可以了。标识符可以是session id,也可以是你自己放在session的User对象。
#5
楼上说得很正确
#6
谢谢楼上的好心人们。。问题已经解决。。用的4楼的方法,3楼关于线程的问题真没接触过。不过也谢谢你。。开始散分喽。。。