如果更改会话ID,是否可以触发方法?

时间:2016-12-01 14:54:59

标签: java session servlets

如果会话ID发生变化,我们会触发一个方法。这种方法基本上允许我们的记录器在发生变化时立即接收变化,因此任何记录输出现在都是针对新的会话ID。

在servlet API 3.0及更早版本中,我们使用HttpSessionListener sessionCreated方法在会话ID更新时运行。这是因为在3.0及更早版本中,更改会话ID的唯一方法是创建新会话。

Servlet API 3.1引入了changeSessionId方法。这不会导致重新创建会话,因此不会调用HttpSessionListener。但是,这是更改会话ID的另一种方法。那么是否有任何类似的方法可以在会话ID发生变化时触发方法?

1 个答案:

答案 0 :(得分:1)

从Servlet API 3.1开始,您可以使用HttpSessionIdListener

  

当HttpSession的ID发生变化时,会通知此接口的实现。要接收通知事件,必须在Web应用程序的部署描述符中配置实现类,使用WebListener注释或通过在ServletContext上调用addListener方法进行注册。