美文网首页
Servlet生命周期,监听器,过滤器

Servlet生命周期,监听器,过滤器

作者: Responsibility_ | 来源:发表于2020-08-05 08:52 被阅读0次

Servlet生命周期

Servlet生命周期.png

servlet生命周期一共分为4个状态 。分别是实例化:在第一次发起请求时调用构造方法,创建实例;初始化:第一次发起请求进行一些初始化操作,调用init方法;服务:调用Service方法 ,根据客户端的不同类型的请求,执行不同的方法,例如get、post、deleat等请求,执行相应的方法;销毁:服务器关闭,Servlet销毁,在销毁时调用destroy方法
注意:实例化与初始化只在第一次发起请求时执行,第二次及以后不再执行,进入服务状态。

监听器

web监听器是一种Servlet中的特殊的组件,它能帮助开发者监听web中特定的对象。

如何实现监听器

  • 创建不同的监听器要先实现对应的接口。
  • 加类注解:@WebListener

常用监听器:

  • ServletContextListener

作用:监听服务器(应用)的启动与关闭
代码示例:

监听对象的状态

@WebListener // 配置当前监听器
public class ApplicationListener implements ServletContextListener {
    
    // 服务器的启动(初始化)
    @Override
    public void contextInitialized(ServletContextEvent sce) {
    
    }
    
    // 服务器的关闭(销毁)
    @Override
    public void contextDestroyed(ServletContextEvent sce) {
        
    }
}
  • HttpSessionListener监听器

作用:监听会话的开始与结束
注意:一个session包括多个请求,session在第一次请求时创建。
代码示例:

@WebListener
public class SessionListener implements HttpSessionListener{
    
    /**
     * 监听Session会话的创建
     */
    @Override
    public void sessionCreated(HttpSessionEvent se) {
        System.out.print("一个新的会话被创建:");
        HttpSession currentSession = se.getSession();
        System.out.println(currentSession.getId());
    }
    
    /**
     * 监听Session会话的销毁
     */
    @Override
    public void sessionDestroyed(HttpSessionEvent se) {
        System.err.println("会话被销毁:" + se.getSession().getId());
    }
}
  • ServletRequestListener

作用:监听request的创建和销毁

@WebListener
public class RequestListener implements ServletRequestListener{
    /**
     * 监听请求的创建
     */
    @Override
    public void requestInitialized(ServletRequestEvent sre) {
        System.out.println("捕获一个来自" + sre.getServletRequest().getRemoteAddr()+"的请求!");
    }
    
    /**
     * 监听请求的销毁
     */
    @Override
    public void requestDestroyed(ServletRequestEvent sre) {
        System.out.println("来自" + sre.getServletRequest().getRemoteAddr()+"的请求已被销毁!");
    }
    
    

监听Attribute中键值对的状态(新增,删除,替换)

  • ServletContextAttributeListener

  • HttpSessionAttributeListener

  • ServletRequestAttributeListener

相关文章

网友评论

      本文标题:Servlet生命周期,监听器,过滤器

      本文链接:https://www.haomeiwen.com/subject/pibvrktx.html