JavaWeb(十八):HttpSessionListener接口
Posted y1笑而过
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaWeb(十八):HttpSessionListener接口相关的知识,希望对你有一定的参考价值。
1.HttpSessionListener接口
/**
* HttpSession生命周期监听器。
* Web应用程序中活动会话列表的更改会通知此接口的实现。
* 要接收通知事件,必须在Web应用程序的部署描述符中配置实现类。
*/
public interface HttpSessionListener extends EventListener {
/**
* HttpSession被创建后调用。
*
* @param se HttpSession通知事件。
*/
public default void sessionCreated(HttpSessionEvent se) {
}
/**
* HttpSession被销毁后调用。
*
* @param se HttpSession通知事件。
*/
public default void sessionDestroyed(HttpSessionEvent se) {
}
}
2.例子
package main;
import javax.servlet.annotation.WebListener;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
@WebListener
public class MyHttpSessionListener implements HttpSessionListener {
/**
* HttpSession被创建后调用。
*
* @param se HttpSession通知事件。
*/
@Override
public void sessionCreated(HttpSessionEvent se) {
System.out.println("---HttpSession被创建后调用---");
}
/**
* HttpSession被销毁后调用。
*
* @param se HttpSession通知事件。
*/
@Override
public void sessionDestroyed(HttpSessionEvent se) {
System.out.println("---HttpSession被销毁后调用---");
}
}
运行结果:
---ServletContext初始化时被调用---
ServletContextAttribute 已添加:name MyServletContextListener
ServletContextAttribute 已替换:name MyServletContextListener
ServletContextAttribute 已删除:name ServletContextListener
08:42:24,525] Artifact ServletDemo:war exploded: Artifact is deployed successfully
08:42:24,525] Artifact ServletDemo:war exploded: Deploy took 268 milliseconds
ServletRequestAttribute 已添加:listener MyServletRequestListener
---进入请求作用域---null
ServletRequestAttribute 已更改:org.apache.catalina.ASYNC_SUPPORTED true
ServletContextAttribute 已添加:org.apache.jasper.runtime.JspApplicationContextImpl org.apache.jasper.runtime.JspApplicationContextImpl@46f89dd5
ServletContextAttribute 已添加:org.apache.jasper.compiler.ELInterpreter org.apache.jasper.compiler.ELInterpreterFactory$DefaultELInterpreter@6139a94
---HttpSession被创建后调用---
---退出请求作用域---null
ServletRequestAttribute 已添加:listener MyServletRequestListener
---进入请求作用域---null
ServletRequestAttribute 已更改:org.apache.catalina.ASYNC_SUPPORTED true
---HttpSession被创建后调用---
---退出请求作用域---null
ServletRequestAttribute 已添加:listener MyServletRequestListener
---进入请求作用域---null
ServletRequestAttribute 已更改:org.apache.catalina.ASYNC_SUPPORTED true
---HttpSession被创建后调用---
---退出请求作用域---null
08:42:33.910 信息 [Catalina-utility-1] org.apache.catalina.startup.HostConfig.deployDirectory 把web 应用程序部署到目录 [/Users/admin/Soft/tomcat/apache-tomcat-9.0.34/webapps/manager]
08:42:33.946 信息 [Catalina-utility-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/Users/admin/Soft/tomcat/apache-tomcat-9.0.34/webapps/manager] has finished in [36] ms
ServletRequestAttribute 已添加:listener MyServletRequestListener
---进入请求作用域---null
ServletRequestAttribute 已更改:org.apache.catalina.ASYNC_SUPPORTED true
---doFilter---
ServletRequestAttribute 已添加:name CharsetFilter
ServletRequestAttribute 已更改:name CharsetFilter
ServletRequestAttribute 已移除:name Filter
---HttpSession被销毁后调用---
---doGet---
ServletRequestAttribute 已添加:name MyServlet
ServletRequestAttribute 已更改:name MyServlet
ServletRequestAttribute 已移除:name Servlet
---HttpSession被创建后调用---
---HttpSession被销毁后调用---
---退出请求作用域---null
以上是关于JavaWeb(十八):HttpSessionListener接口的主要内容,如果未能解决你的问题,请参考以下文章