如何实现 Servlet 监听器

Servlet 监听器

这里的监听器和普通时候听到的鼠标点击事件挺像的,它是自动执行的,当你触发了某种事件,比如服务器启动会触发服务器启动事件。而这个事件是体现在 ServletContextListener 接口上的。

监听器它属于第三种 Servlet,负责监听 WEB 程序执行的各种操作。可以对 application ,request,session 三种进行监听。

使用

首先,需要对几个接口进行实现。

application 监听

实际也就是对 ServletContext 监听。有两个接口

  • ServletContextListener
    • 监听服务器的启动和关闭
  • ServletContextAttributeListener
    • 对 application 域对象的设置、移除属性监听。

服务器启动、关闭监听

主要有两个实现方法

  • void contextInitialized(ServletContextEvent sce)
    • 用于发生启动时候执行的方法
  • void contextDestroyed(ServletContextEvent sce)
    • 用于发生销毁的时候执行

属性监听

ServletContextAttributeListener 可以对 application 域对象设置和移除以后属性时的监听。

  • void attributeAdded(ServletContextAttributeEvent scab)
    • 在发生添加属性到 application 域对象的时候执行
  • void attributeRemoved(ServletContextAttributeEvent scab)
    • 在发生移除属性到 application 域对象的时候执行
  • void attributeReplaced(ServletContextAttributeEvent scab)
    • 在发生修改(重新赋值)属性到 application 域对象的时候执行

Session 监听

实际也就是对 HttpServlet 监听。有两个接口

  • HttpSessionListener
    • 对 session 的创建和销毁监听
  • HttpSessionAttributeListener
    • 对 session 域对象的新增,修改和移除的监听

会话的创建、销毁监听

主要有两个实现方法

  • void sessionCreate(HttpSessionEvent hse)
    • 用于发生在 session 的创建,浏览器第一次访问服务器的时候执行的方法
  • sessionDestroyed(HttpSessionEvent hse)
    • 用于发生在 session 对象销毁的时候执行

属性监听

HttpSessionAttributeListener 可以对 session域对象设置和移除以后属性时的监听。

  • void attributeAdded(HttpSessionBindingEvent shbe )
    • 在发生添加属性到 session 域对象的时候执行
  • void attributeRemoved(HttpSessionBindingEvent shbe)
    • 在发生移除属性到 session 域对象的时候执行
  • void attributeReplaced(HttpSessionBindingEvent hsbe)
    • 在发生修改(重新赋值)属性到 session 域对象的时候执行

request 监听

实际也就是对 ServletRequest 监听。有两个接口

  • ServletRequestListener
    • 对浏览器的请求进行监听
  • ServletRequestAttributeListener
    • 对请求与信息的创建、销毁和移除进行监听

请求的创建、销毁监听

ServletRequestListener 对请求的销毁和创建,监听主要有两个实现方法

  • void requestInitialized(ServletRequestEvent sre)
    • 用于发生请求的创建时候执行的方法
  • void requestDestroyed(ServletRequestEvent sre)
    • 用于发生在请求销毁的时候执行的方法

属性监听

ServletRequestAttributeListener 可以对 application 域对象设置和移除以后属性时的监听。

  • void attributeAdded(ServletRequestAttributeEvent srae)
    • 在发生添加属性到 request 域对象的时候执行
  • void attributeRemoved(ServletRequestAttributeEvent srae)
    • 在发生移除属性到 request 域对象的时候执行
  • void attributeReplaced(ServletRequestAttributeEvent srae)
    • 在发生修改(重新赋值)属性到 request 域对象的时候执行

配置

那么对象创建和实现接口完毕,该怎样把监听器能运行在 web 程序上呢?因为是属于 Servlet ,所以用和标准 Servlet 差不多的配置。

  • web.xml 配置

    <!-- 注册监听器 -->
      <listener>
      	<listener-class>com.wanbangee.listener.ServletContextListenerDemo</listener-class>
      </listener>
    
    
  • 注解配置

    @WebListener
    

    使用注解,在监听器类的声明出使用注解。

    @WebListener
    public class loginListener implements ServletContextListener{......}
    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值