zoukankan      html  css  js  c++  java
  • JavaWeb-Listener

    --监听器的相关概念:

    事件源:被监听的对象  -- 三个域对象 request  session  servletContext
    监听器:监听事件源对象  事件源对象的状态的变化都会触发监听器 
    注册监听器:将监听器与事件源进行绑定
    响应行为:监听器监听到事件源的状态变化时 所涉及的功能代码 -- 程序员编写代码

     --配置

    <!--监听器快速入门-->
    <listener>
      <listener-class>com.itheima.a_quick.QuickListener</listener-class>
    </listener>

    注解:

    @WebListener
    public class QuickListener implements ServletContextListener {
        // 省略内容....
    }

    案例 在线用户:

     

    
    
    @WebListener
    public class ContextAsListener implements ServletContextListener,
            HttpSessionListener, HttpSessionAttributeListener, ServletRequestListener {
    
        // Public constructor is required by servlet spec
        public ContextAsListener() {
        }
    
        // -------------------------------------------------------
        // ServletContextListener implementation
        // -------------------------------------------------------
        public void contextInitialized(ServletContextEvent sce) {
          /* This method is called when the servlet context is
             initialized(when the Web application is deployed). 
             You can initialize servlet context related data here.
          */
            System.out.println("servletContext创建了");
            sce.getServletContext().setAttribute("num", 0);
        }
    
        public void contextDestroyed(ServletContextEvent sce) {
          /* This method is invoked when the Servlet Context 
             (the Web application) is undeployed or 
             Application Server shuts down.
          */
            System.out.println("servletContext销毁了");
        }
    
        // -------------------------------------------------------
        // HttpSessionListener implementation
        // -------------------------------------------------------
        public void sessionCreated(HttpSessionEvent se) {
            /* Session is created. */
            System.out.println("session创建");
            ServletContext servletContext = se.getSession().getServletContext();
            servletContext.setAttribute("num", (int) servletContext.getAttribute("num") + 1);
        }
    
        public void sessionDestroyed(HttpSessionEvent se) {
            /* Session is destroyed. */
            System.out.println("session销毁");
            ServletContext servletContext = se.getSession().getServletContext();
            servletContext.setAttribute("num", (int) servletContext.getAttribute("num") - 1);
        }
    
        // -------------------------------------------------------
        // HttpSessionAttributeListener implementation
        // -------------------------------------------------------
    
        public void attributeAdded(HttpSessionBindingEvent sbe) {
          /* This method is called when an attribute 
             is added to a session.
          */
        }
    
        public void attributeRemoved(HttpSessionBindingEvent sbe) {
          /* This method is called when an attribute
             is removed from a session.
          */
        }
    
        public void attributeReplaced(HttpSessionBindingEvent sbe) {
          /* This method is invoked when an attibute
             is replaced in a session.
          */
        }
    
        @Override
        public void requestDestroyed(ServletRequestEvent servletRequestEvent) {
    
        }
    
        @Override
        public void requestInitialized(ServletRequestEvent servletRequestEvent) {
    
        }
    }

    https://blog.csdn.net/qq_15204179/article/details/82055448

  • 相关阅读:
    localStorage、sessionStorage、Cookie的区别及用法
    使用BottomNavigationView+ViewPager+Fragment的底部导航栏
    使用BottomNavigationView+ViewPager+Fragment的底部导航栏
    使用BottomNavigationView+ViewPager+Fragment的底部导航栏
    使用BottomNavigationView+ViewPager+Fragment的底部导航栏
    MySQL UDF Dynamic Library Exploit in *nix
    MySQL UDF Dynamic Library Exploit in *nix
    MySQL UDF Dynamic Library Exploit in *nix
    区块链隐私保护:MimbleWimble 和 Grin 简介
    去中心化金融项目 Bloqboard FAQ
  • 原文地址:https://www.cnblogs.com/xiaozhang666/p/13409949.html
Copyright © 2011-2022 走看看