Servlet API 中定义了几种监听器,大多数尽管不是全部,都将监听某种形式的会话活动,通过实现对应事件的监听器接口订阅某个事件,然后在部署描述符中添加 <listener> 配置,或者在该类中添加注释
@javax.servlet.annotation.WebListener (但不需要同事使用这两种方式)
 
如果需要,可以在单个类中实现多个监听器接口,当然,你不会希望将不同业务的代码添加到同一个类中。当某个事件发生时,将触发事件发布,然后容器将调用对应事件监听器中的方法。
 
Listener
监听三个域对象
ServletContext
ServletRequest
HttpSession
监听三个对象的创建和销毁
ServletContextListener
servlet 启动 和 销毁的时候会触发
ServletRequestListener
每次request 请求来 会触发, 刷新下页面就会触发
HttpSessionListener
一个浏览器只创建一次session
创建:java中第一次调用 request.getSession 的时候
销毁:
session超时
手动销毁 session
服务器非正常关闭
 
监听三个对象的属性变化 (添加 替换 删除)
ServletContextAttributeListener
application.setAttribute("aa","fffffff 66666 aaa <br />aaaa");
System.out.println("add"+event.getName()+event.getValue());
application.setAttribute("aa","f33333 aaa <br />aaaa");
application.removeAttribute("aa");
ServletRequestAttributeListener
 
HttpSessionAttributeListener
 
 
监听session中javabean的状态
这2个接口需要javabean实现,是让javabean感知到自己的状态
HttpSessionActivationListener (钝化(session 写入 磁盘)和活化 (磁盘写入session))
钝化: javabean 从session 持久化到磁盘上
活化: javabean 从磁盘写入session 中
也是要写到指定的类上 要实现2个接口 implements HttpSessionActivationListener,Serializable{
 
可以通过配置文件修改 javabean 钝化 活化 的时间
/META-INFO/context.xml
maxIdleSwap="1" 多长时间不用
directory 目录下
<?xml version="1.0" encoding="UTF-8"?>
<Context >
<Manager className="org.apache.catalina.session.PersistentManager" maxIdleSwap="1">
<Store className="org.apache.catalina.session.FileStore" directory="gwyy" />
</Manager>
</Context>
 
 
 
HttpSessionBindingListener (session的绑定和解绑 )
需要往session里面new 哪个类就在哪个类上加绑定接口
session.setAttribute("p",new Person(1,"tom"));
要往 Person 类上加接口
 
 
 
让容器继承监听器 ,然后加上@WebListener
@WebListener
public class SessionListener implements HttpSessionListener, HttpSessionIdListener{}
web.xml 注册
<listener>
<listener-class>me.liangtian.web.servlet.myServletLis</listener-class>
</listener>
<listener>
<listener-class>me.liangtian.web.servlet.myRequestLis</listener-class>
</listener>
<listener>
<listener-class>me.liangtian.web.servlet.mySessionLis</listener-class>
</listener>
 
 
 

javaee Listener的更多相关文章

  1. Servlet使用注解标注监听器(Listener)

    Servlet3.0提供@WebListener注解将一个实现了特定监听器接口的类定义为监听器,这样我们在web应用中使用监听器时,也不再需要在web.xml文件中配置监听器的相关描述信息了. 下面我 ...

  2. [原创]java WEB学习笔记47:Servlet 监听器简介, ServletContext(Application 对象), HttpSession (Session 对象), HttpServletRequest (request 对象) 监听器,利用listener理解 三个对象的生命周期

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  3. junit4 javaee 5.0 jpa SSH 单元测试问题集锦

    本篇文章基于已经实现了ssh集成的demo.项目.具体的ssh项目怎么配置,请参考本文最后 spring环境下的JUnit4测试 1,下载所需jar包: spring-test-3.2.0.RELEA ...

  4. 监听器Listener

    监听器 6个事件类,均以event结尾 *某些操作,如启动/关闭容器,创建/销毁会话,都将触发一种事件发生,当发生了某种事件,容器将创建对应的事件类对象 8个监听接口,均以Listener结尾 监听器 ...

  5. [JavaEE] SSH框架笔记_eclipse搭建SSH框架详解

    SSH框架是最常用的框架之一,在搭建SSH框架的时候总有人遇到这样,那样的问题.下面我介绍一下SSH框架搭建的全过程. 第一步:准备工作. 下载好eclipse,Struts2,Spring,Hibe ...

  6. javaweb学习总结(四十四)——监听器(Listener)学习

    一.监听器介绍 1.1.监听器的概念

  7. 如何在自定义Listener(监听器)中使用Spring容器管理的bean

    正好以前项目中碰到这个问题,现在网上偶然又看到这个问题的博文,那就转一下吧. 原文:http://blog.lifw.org/post/46428852 感谢作者 另外补充下:在web Server容 ...

  8. 搭建基于SSI(struts2,spring,ibatis)的javaEE开发环境

    搭建基于SSI(struts2,spring,ibatis)的javaEE开发环境 最近有很多人不知道如何搭建基于SSI(struts2,spring,ibatis)的J2EE开发环境,这里给大家一个 ...

  9. servlet中的8个Listener

    servlet中的8个Listener: Xml: <?xml version="1.0" encoding="UTF-8"?> <web-a ...

随机推荐

  1. 关于H5 移动端css 文本超出时省略号 失效的问题

    之前写代码的时候遇到一个问题,就是用了下面这段css代码来让文字超出范围隐藏并显示省略号. overflow: hidden; text-overflow: ellipsis; display: -w ...

  2. Oracle死锁一例(ORA-00060),锁表导致的业务死锁问题

    1.问题发现 检查客户数据库的时候发现存在大量死锁的情况 Thread advanced to log sequence (LGWR switch) Current log# mem# : /orad ...

  3. rz/sz:工作原理

    我们知道用linux命令rz/sz可以通过一些终端软件如secureCRT等在linux服务器与本地windows之间传文件.在服务器上rz一下,在本地windows下就跳出一个窗口,选择文件后就传到 ...

  4. 日常工作之Zabbix源码编译,兼容mysql5.6

    原文链接:http://www.leleblog.top/daily/more?id=6 Zabbix源码编译 环境: centOS7.mysql5.6.21(已存在). 任务简述: 服务器搭建zab ...

  5. Spring的扩展

    Spring中引用属性文件 JNDI数据源 Spring中Bean的作用域 Spring自动装配 缺点

  6. Js 手指事件

    1.Touch事件简介   pc上的web页面鼠标会产生onmousedown.onmouseup.onmouseout.onmouseover.onmousemove的事件,但是在移动终端如ipho ...

  7. TCC : Tiny C Compiler (2018-2-6)

    饭墙下载,有缘上传: https://files.cnblogs.com/files/bhfdz/tcc-0.9.27-win32-bin.zip https://files.cnblogs.com/ ...

  8. Linux GPIO键盘驱动开发记录_OMAPL138

    Linux GPIO键盘驱动开发记录_OMAPL138 Linux基本配置完毕了,这几天开始着手Linux驱动的开发,从一个最简单的键盘驱动开始,逐步的了解开发驱动的过程有哪些.看了一下Linux3. ...

  9. Python学习:9.模块的安装以及调用模块

    什么是模块 在Python中,模块其实也就是包含python代码的文件,我们为什么要使用模块?在我们以后写代码的时候,我们会发现有很多功能需要经常使用,那我们想要使用这些功能怎么办,要再把那些代码在敲 ...

  10. SQL盲注

    一.首先输入1和-1 查看输入正确和不正确两种情况 二.三种注入POC LOW等级 ... where user_id =$id 输入      真  and  假 = 假 (1)...where u ...