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. 实现一个shell程序

    实现一个自己的shell程序,这个程序有这些功能:解释执行命令,支持输入输出重定向,支持管道,后台运行 程序.当运行该程序后,它支持以下的命令格式: 1.单个命令,如:ls.2.带l到多个参数的命令, ...

  2. git 的一些基本命令小结

    Git是目前世界上最先进的分布式版本控制系统 对于git 的用法,本文并不属于教程,只是总结记录一些平时用的简单命令 git的下载地址:https://git-scm.com/downloads 主要 ...

  3. 怎么将oracle的sql文件转换成mysql的sql文件

    怎么将sql文件导入PowerDesigner中的方法(将oracle的sql文件转换成mysql的sql文件)呢? 怎么将xx.sql文件的数据库结构导入powerdesigner 的方法呢? 现讲 ...

  4. Git 原理入门

    Git 是最流行的版本管理工具,也是程序员的必备技能之一. 即使天天使用它,很多人也未必了解它的原理.Git 为什么可以管理版本?git add.git commit这些基本命令,到底在做什么,你说得 ...

  5. 类型“Observable<Response>”上不存在属性“map”

    出错提示: angular2 Property 'map' does not exist on type 'Observable<Response>' 类型“Observable<R ...

  6. 采用文件方式安装Python第三方库

    由于Python某些第三方库仅提供源代码,通过pip下载文件后无法在Windows系统编译安装,会导致第三方库安装失败.为了解决这类第三方库的安装问题,美国加州大学尔湾分校提供了一个网页,帮助Pyth ...

  7. python教程(二)·变量

    什么是变量?在百度百科中,变量的解释是: 变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念.变量可以通过-- 这是一段很长很长的解释,其实,作者认为没必要这么机械式的去理解.简单说,变量 ...

  8. VS中添加lib与dll

    参考与拓展阅读:https://blog.csdn.net/u012043391/article/details/54972127 lib: 1.附加包含目录---添加工程的头文件目录:       ...

  9. vue实现图片路径传送

    <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"& ...

  10. 成都Uber优步司机奖励政策(4月9日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...