关于程序员:JavaWeb之监听器

4次阅读

共计 1734 个字符,预计需要花费 5 分钟才能阅读完成。

监听器

Servlet 中存在一个 EventListener 接口,该接口有很多的子接口,如 ServletContextListener、HttpSessionListener、ServletRequestListener 等
用于监听 ServletContext、HttpSession、ServletRequest 等对象的创立和销毁,以及属性批改

<!– more –>

监听 ServletContext、HttpSession、ServletRequest 等对象的创立和销毁

  • ServletContextListener 服务器启动时创立,调用 contextInitialized 办法;服务器失常敞开时销毁调用 contextDestroyed 办法
  • HttpSessionListener 第一次访 request.getHttpSession 创立,调用 sessionCreated 办法;调用 invalidate 或者过期销毁,调用 sessionDestroyed 办法
  • ServletRequestListener 每一次拜访创立,调用 requestInitialized 办法;响应完结销毁,调用 requestDestroyed 办法

以 ServletContextListener 为例

// 当 Servlet 容器启动或终止 Web 利用时,会触发 ServletContextEvent 事件,该事件由 ServletContextListener 解决
public interface ServletContextListener extends EventListener {
      // 启动 Web 利用时调用该办法,该办法完结后才会对 Filter 进行初始化
    void contextInitialized(ServletContextEvent var1);
        // web 利用终止时调用该办法,该办法在 Servlet 和 Filter 销毁之后调用
    void contextDestroyed(ServletContextEvent var1);
}

实现相应的接口,监听不同的域对象

<!-- web.xml -->
<listener>
    <listener-class>

场景:
ServletContextListener 最罕用,在以后 WEB 利用加载的时候对以后 WEB 利用的相干资源进行初始化操作:创立数据库连接池,创立 Spring 的 IOC 容器,读取以后 WEB 利用的初始化参数

监听域对象 ServletContext、HttpSession、ServletRequest 属性变更的监听器

  • ServletContextAttributeListener attributeAdded attributeRemoved attributeReplaced
  • HttpSessionAttributeListener attributeAdded attributeRemoved attributeReplaced
  • ServletRequestAttributeListener attributeAdded attributeRemoved attributeReplaced

感知 session 绑定的监听器

​ 保留到 Session 域中的对象能够有多种状态:绑定到 Session 中,从 Session 中解除绑定;随 Session 对象长久到到一个存储设备中;随 Session 对象从一个存储设备中复原
​ HttpSessionBindingListener 和 HttpSessionActivationListener 接口,实现这两个接口不须要在 web.xml 文件中注册

放到 session 中的对象实现 HttpSessionBindingListener

会触发两个办法   绑定 valueBound        解除 valueUnBanding

实现了 HttpSessionActivationListener 接口的对象能够感知本人被钝化和被活化的事件

sessionWillPassivate 从内存写到磁盘     sessionDisActivate 从磁盘中读取进去

session 会被存储在 tomcat 以后我的项目下 .cer 文件

https://zhhll.icu/2021/javaweb/ 根底 /6. 监听器 /

本文由 mdnice 多平台公布

正文完
 0