Java jsp中的会话启动事件处理程序
在asp.net中,我们有Global.asax,我们有session_start方法,在新用户首次访问时运行。 在jsp中也是这样吗 我得到了可以使用拦截器的建议,但我仍然不明白拦截器是如何捕获会话启动的,使用一个接口来接收有关HttpSession生命周期更改的通知事件 重写它的方法。示例代码:Java jsp中的会话启动事件处理程序,java,jsp,session,jakarta-ee,Java,Jsp,Session,Jakarta Ee,在asp.net中,我们有Global.asax,我们有session_start方法,在新用户首次访问时运行。 在jsp中也是这样吗 我得到了可以使用拦截器的建议,但我仍然不明白拦截器是如何捕获会话启动的,使用一个接口来接收有关HttpSession生命周期更改的通知事件 重写它的方法。示例代码: public class SessionListener implements HttpSessionListener { /** * Receives notification that
public class SessionListener implements HttpSessionListener {
/**
* Receives notification that a session has been created.
*/
@Override
public void sessionCreated(HttpSessionEvent se) {
HttpSession session = se.getSession(); \\ handle to HttpSession Object
System.out.println("sessionCreated");
}
/**
* Receives notification that a session is about to be invalidated.
*/
@Override
public void sessionDestroyed(HttpSessionEvent se) {
}
}
将侦听器类添加到部署描述符web.xml
:
<listener>
<listener-class>SessionListener</listener-class>
</listener>
会话侦听器
正如@Luiggi所指出的,如果您使用的是
Servlet 3.0
投诉容器,如Tomcat 7
,您可以使用注释定义侦听器类,而不是在web.xml
中声明侦听器,尽管我更喜欢正统的方法,因为您可以找到所有侦听器信息(绑定侦听器除外)在一个文件中 创建一个侦听器并将其添加到web.xml中,如下所示
<listener>
<listener-class>sessionMaintainance.sessionMaintain</listener-class>
</listener>
会话维护
侦听器是实现HttpSessionListener的类。它有两种方法sessionCreated和sessionDestroyed。当您想在创建会话时执行任何操作,而不是将其写入sessionCreated方法时,以及当您想在会话被破坏时执行某些操作时,请在sessionDestroyed方法中执行该操作时注意,如果OP使用的是Servlet 3.0特色的web应用程序服务器,如Tomcat 7,他可以去掉web.xml中的
配置,只需在@SessionListener
类中添加@WebListener
注释。