在做一个系统,因为用户可能会一直挂着系统,所以要做一个session监听,当session超时失效时,需要将用户对象重新封装到这个session中
session监听我光知道有两种方法可以做到
一个是HttpSessionListener,但这种方法监听的是所有的session,我如果在sessionDestroyed方法中判断该失效的session是我需要监听的用户session?
另一个是HttpSessionBindingListener,这种方法需要将这个监听器通过session.setAttribute("userSessionListener",new SessionListener(user))绑定到一个session中,而且此方法监听的是userSessionListener这个session,可我想监听的是封装user对象的session,这可如何是好?
另外就是cookies了,需要将用户对象序列化以及反序列化,难道每次取的时候都要反序列化一下cookies?那企不是很麻烦?
大家有没有好的办法让我实现监听用户对象session的方法?

解决方案 »

  1.   

    其实很简单,你写一个线程,每隔一定时间,把你要的session取出来,看看它什么状况,然后做相关操作,就可以,用监听很麻烦。说到底监听的本质其实就是一个线程,它不断去监看某个对象怎么样了。道理都是一样的。线程会写吧,不会的话,就不怪你听不懂了
      

  2.   

    就第一个呀,只有失效的session才会触发那个sessionDestroyed方法,到底是那个session,根据session里的标识符判断就可以了。标识符可以是session id,也可以是你自己放在session的User对象。