读书笔记(一)——Servet监听器

    xiaoxiao2024-10-23  80

    一、主要的监听器

    Servlet的监听器接口主要在javax.servlet和javax.servlet.http的包中。主要有以下接口:

    (1) javax.servlet.ServletContextListener  它能够响应ServletContext生命周期事件,提供了ServletContext创建之后和ServletContext关闭之前会被调用的方法。

    (2)javax.servlet.ServletContextAttributeListener  它能够响应ServletContext范围的属性添加、删除、替换事件。

    (3)javax.servlet.http.HttpSessionListener  它能够响应HttpSession的创建、超时和失效事件。

    (4)javax.servlet.http.HttpSessionAttributeListener  它能响应HttpSession范围的属性添加、删除、替换事件。

    (5)javax.servlet.http.HttpSessionBindingListener 可以实现这个接口来保存HttpSession范围的属性,当有属性从HttpSession添加或删除时,HttpSessionBindingListener接口能够做出响应。

    (6)javax.servlet.ServletRequestListener 它能够响应一个ServletRequest的创建或删除。

    (7)javax.servlet.ServletRequestAttributeListener 它能响应ServletRequest范围的属性值添加、删除、修改事件。

    (8)javax.servletAsynListener  一个用于异步操作的监听器

    二、使用方式

    (1)使用WebListener注解

    (2)在部署描述文档中(web.xml),增加如下的listener元素

    <listener>

           <listener-class>xxxListener</listener-class>

    </listener>

    三、ServletContextListener

      该监听器能够对ServletContext的创建和销毁做出响应。主要的方法包括以下两个:

    void contextInitialized(ServletContextEvent event) 

    void contextDestroyed(ServletContextEvent event)

    在入参ServletContextEvent中定义了一个访问ServletContext的getServletContext方法。   

    ServletContext getServletContext()

    通过这个方法就可以获取到ServletContex。

    四、HttpSessionListener

    当一个HttpSession创建或者销毁时,容器都会通知所有的HttpSessionListener监听器,HttpSessionListener接口有两个方法:

    void sessionCreated(HttpSessionEvent event)

    void sessionDestroyed(HttpSessionEvent event)

    这两个方法都可以接收到一个继承于java.util.Event的HttpSessionEvent对象。可以通过调用HttpSessionEvent对象的getSession方法来获取当前的HttpSession(HttpSession主要用于会话管理)。getSession方法如下:

    HttpSession getSession()

    五、总结

    一般来说,很少直接使用Servet,在生产环境,更多是基于Spring MVC等框架进行开发,但学习Servlet是Java Web开发的基础。

    参考书籍:《Servlet、JSP和Spring MVC初学指南》

    最新回复(0)