当前位置: 首页 > news >正文

监听器listener

文章目录

    • 监听器( listener)
      • 对Application内置对象监听的语法和配置
      • 对session内置对象监听的语法和配置

监听器( listener)

对象与对象的关系:

继承关联

tomcat一启动创建的顺序:监听器,config,application(全局初始化参数),filter,servlet(有0 )

**概念:**由Java编写的WEB组件,主要完成对内置对象状态的变化(创建,销毁)和属性的变化进行监听,做进一步的处理。
作用:

  1. 对session内置对象状态的变化(创建,销毁)和属性的变化进行监听
  2. 对application内置对象状态的变化(创建,销毁)和属性的变化进行监听

对Application内置对象监听的语法和配置

  • ServletContextDemo.java

    package cn.mldn.lxh.listener ;import javax.servlet.* ;public class ServletContextDemoimplements ServletContextListener,ServletContextAttributeListener
    {private ServletContext application = null ;// 实现方法public void contextInitialized(ServletContextEvent sce){this.application = sce.getServletContext() ;System.out.println("** 上下文初始化 ...") ;System.out.println("** 当前虚拟目录的绝对路径:"+this.application.getRealPath("/")) ;}public void contextDestroyed(ServletContextEvent sce){System.out.println("** 上下文销毁 ...") ;}public void attributeAdded(ServletContextAttributeEvent scab){System.out.println("** 增加属性:"+scab.getName()+" --> "+scab.getValue()) ;}public void attributeRemoved(ServletContextAttributeEvent scab){System.out.println("** 删除属性:"+scab.getName()+" --> "+scab.getValue()) ;}public void attributeReplaced(ServletContextAttributeEvent scab){System.out.println("** 替换属性:"+scab.getName()+" --> "+scab.getValue()) ;}
    };/*<listener><listener-class>cn.mldn.lxh.listener.ServletContextDemo</listener-class></listener>
    */
    
  • appdemo.jsp

    <%
    getServletContext().setAttribute("username","jack");
    //getServletContext().removeAttribute("username");
    %>
    username:<%=getServletContext().getAttribute("username")%>
    

    在这里插入图片描述

对session内置对象监听的语法和配置

  • sessiondemo.jsp

    <%	session.setAttribute("name","jack"); // session.removeAttribute("name") ;//session.invalidate() ;
    %><h1> name: ${name} </h1>
    
  • HttpSessionDemo .java

    package cn.mldn.lxh.listener ;
    import javax.servlet.http.* ;
    public class HttpSessionDemo implements HttpSessionListener,HttpSessionAttributeListener
    {private HttpSession session ;// 实现方法public void sessionCreated(HttpSessionEvent se){this.session = se.getSession() ;System.out.println("** Session 创建 ....") ;System.out.println("** SessionID --> "+this.session.getId()) ;}public void sessionDestroyed(HttpSessionEvent se){System.out.println("** Session 销毁 ....") ;}public void attributeAdded(HttpSessionBindingEvent se){System.out.println("** Session 增加属性:"+se.getName()+" --> "+se.getValue()) ;System.out.println("** 获得Session "+se.getSession().getId()) ;}public void attributeRemoved(HttpSessionBindingEvent se){System.out.println("** Session 删除属性:"+se.getName()+" --> "+se.getValue()) ;}public void attributeReplaced(HttpSessionBindingEvent se){System.out.println("** Session 替换属性:"+se.getName()+" --> "+se.getValue()) ;}
    };
    /*<listener><listener-class>cn.mldn.lxh.listener.HttpSessionDemo</listener-class></listener>
    */
    

在这里插入图片描述

http://www.lryc.cn/news/510350.html

相关文章:

  • 重温设计模式--10、单例模式
  • Flutter动画学习二
  • 讯飞语音听写WebApi(流式)【React Native版】
  • 【Linux编程】一个基于 C++ 的 TCP 客户端异步(epoll)框架(一))
  • PG备份恢复--pg_dump
  • pikachu靶场搭建详细步骤
  • HarmonyOS NEXT开发进阶(五):装饰器讲解
  • 【编译原理】往年题汇总(山东大学软件学院用)
  • 【漏洞复现】F5 BIG-IP Next Central Manager SQL注入漏洞(CVE-2024-26026)
  • 设计模式-创建型-单例模式
  • VBA技术资料MF243:利用第三方软件复制PDF数据到EXCEL
  • 【2024最新】基于Python+Mysql+django的水果销售系统Lw+PPT
  • 一种寻路的应用
  • 编译openssl遇到错误Parse errors: No plan found in TAP output的解决方法
  • 一文大白话讲清楚防抖和节流,设计封装防抖和节流,以及防抖和节流的应用场景
  • Windows开启IIS后依然出现http error 503.the service is unavailable
  • C++的封装(十四):《设计模式》这本书
  • 牛客周赛73B:JAVA
  • 【Ubuntu 20.4安装截图软件 flameshot 】
  • 剑指Offer|LCR 014. 字符串的排列
  • 【Agent】Chatbot、Copilot与Agent如何帮助我们的提升效率?
  • QT笔记- QTreeView + QFileSystemModel 当前位置的保存与恢复 #选中 #保存当前索引
  • OpenResty开发环境搭建
  • linux提示结构需要清理
  • 【扩展卡尔曼滤波理论推导与实践】【理论】【2/3 公式推导】
  • springboot494基于java的综合小区管理系统(论文+源码)_kaic
  • 深度学习blog-Transformer-注意力机制和编码器解码器
  • 敏感词 v0.24.0 新特性支持标签分类,内置实现多种策略
  • 随身 WiFi 连接 X-Wrt 共享网络与 IPv6 中继配置
  • Keil-编译按钮Translate,Build,Rebuild