我正在尝试处理会话过期只是为了记录 porpouse。
我已经阅读了有关DestructionAwareBeanPostProcessor的信息,但它似乎没有被调用。所以我试图为bean实现一个destroy方法,这就是所谓的。
这种方法的问题是我无法区分 bean 何时因会话到期或“强制”注销而被销毁。
我试图实现一个 HttpSessionListener 但我无法访问会话 bean..
有什么帮助或建议吗?
我正在尝试处理会话过期只是为了记录 porpouse。
我已经阅读了有关DestructionAwareBeanPostProcessor的信息,但它似乎没有被调用。所以我试图为bean实现一个destroy方法,这就是所谓的。
这种方法的问题是我无法区分 bean 何时因会话到期或“强制”注销而被销毁。
我试图实现一个 HttpSessionListener 但我无法访问会话 bean..
有什么帮助或建议吗?
嗨@Enrichman,您可以执行以下操作:
public class HttpSessionRenew implements HttpSessionListener {
SimpleDateFormat f = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
public HttpSessionRenew() {
super();
}
public void sessionCreated(HttpSessionEvent event) {
HttpSession session = event.getSession();
System.out.println("TIME: " + session.getMaxInactiveInterval());
System.out.println("ID Session "+session.getId()+" create "+session.getCreationTime());
}
public void sessionDestroyed(HttpSessionEvent event) {
HttpSession session = event.getSession();
// print out the session id
if(session != null) {
System.out.println( "Session Id: " + session.getId() );
synchronized(session) {
// invalidating a session destroys it
session.invalidate();
System.out.println("DESTROYD SESSION");
}
}
System.out.println("ID Session "+session.getId()+" destroyd "+ f.format(new Date()));
}
}
web.xml
<listener>
<listener-class>your.fully.qualified.name.HttpSessionRenew</listener-class>
</listener>
<!-- CONFIGURATION TIME -->
<session-config>
<session-timeout>30</session-timeout>
</session-config>
我希望能帮助你:)