https://www.imooc.com/video/5664

Web监听器由Servlet规范提供的,可以监听客户端的请求以及服务端的操作,即监听ServletContext、HttpSession、ServletRequest对象.(这三个对象称为域对象).监听事件分为这三个对象的创建、销毁事件以及这三个对象属性的变化事件.与监听绑定到HttpSession域中的某个对象的状态的时间,分别要实现不同的监听器接口.

Web监听器的用途如下所示:<br> 1:统计在线人数和在线用户——知道当前有多少用户在使用系统<br> 2:系统启动时加载初始化信息——这个功能有好多种方式可以实现,这是其中之一<br> 3:统计网站的访问量——和1类似<br> 4:跟Spring结合

有多个监听器的时候,按web.xml中注册顺序启动

监听器>过滤器>servlet的启动顺序

@监听器分类: 1.按监听器的对象划分: a 用户监听应用程序环境对象(ServletContext)的事件监听器 b 用于监听用户会话对象(HttpSession)的事件监听器 c 用于监听请求消息对象(ServletRequest)的事件监听器 2.按事件划分 a 监听域对象自身的创建和销毁的事件监听器 b 监听域对象中的属性的增加和删除的事件监听器 c 监听绑定到HttpSession域中的某个对象的状态的事件监听器

HttpSession的创建和销毁

实现HttpSessionListener接口用于监听它的创建和销毁事件

一个HttpSession可以注册多个HttpSessionListener接口,

一个web应用中可以有多个HttpSession对象

有两个事件处理方法: sessionCreated方法: public void sessionCreated(HttpSessionEvent se) session创建时调用 sessionDestroyed方法: public void sessionDestroyed(HttpSessionEvent se) session销毁时调用

HttpSessionListener的主要用途:

  统计在线人数 记录访问日志,

  记录访问时间、访问的ip

/** * 销毁session * 1.关闭服务器 * 2.关闭浏览器 * 3.不关闭浏览器,session超时 */ 不关闭浏览器,session超时

可以在web.xml配置session超时的时间 <session-config> <session-timeout>0</session-timeout> </session-config> 0:session没有超时的限制 1:session超时1分钟后销毁,但是并不是准确的一分钟

ServletRequest的事件监听器

实现ServletRequestListener接口用于监听它的创建和销毁事件 一个ServletRequest可以注册多个ServletRequestListener接口,

有两个事件处理方法: requestInitialized方法: public void requestInitialized(ServletRequestEvent sre) request创建时调用 参数ServletRequestEvent可以获取ServletRequest对象 ServletRequest sr = sre.getServletRequest() 进而获取初始化参数:sr.getInitParmeter("") requestDestroyed方法: public void requestDestroyed(ServletRequestEvent sre) request销毁时调用

ServletRequest的主要用途:

  读取参数

  记录访问历史

request监听的是用户的每一个访问请求

request.setAttribute("...","..."); // 是存储在request对象中的属性

request.getAttribute("..."); // get的只能是setAttribute设置的属性

request.getParameter("..."); // 获取的是http://请求中设置的param

监听器的分类-按监听事件划分:<br>

1、监听器绑定到HttpSession域中的某个对象的状态事件监听器;<br>

2、HttpSession中的对象状态:<br>

(1)绑定:通过setAttribute保存到session对象当中;<br>

(2)解除绑定:removeAttribute;<br>

(3)钝化:将session对象持久化到存储设备上;<br>

(4)活化:将session对象从存储设备上进行恢复。<br>

3、session钝化机制:<br>

(1)把服务器中不常使用的session对象暂时的序列化到系统文件或是数据库中,当使用时反序列化到内存中,整个过程有服务器自动完成。<br>

(2)session的钝化机制由SessionManager管理,创建一个普通的javabean绑定和解除绑定需实现HttpSessionBindingListener接口<br>

4、要想实现钝化和活化,除了需实现HttpSessionActivationListener接口还需要实现Serializable接口

Servlet 3.0的监听器的使用:@WebListener("3.0web监听器");

不用注册了,但还是要实现接口

jave web 监听器。的更多相关文章

  1. 在自定义的web监听器中嵌入web中的定时事件

    在 http://www.cnblogs.com/myadmin/p/4806265.html 中说明了自定义web监听器的一些东西. 本文中的web定时任务也基于上篇文章的自定义web监听器. 新建 ...

  2. Web监听器导图详解(转)

    阅读目录 Web监听器 监听器的分类 Servlet版本与Tomcat版本 getAttribute与getParameter的区别 参考 监听器是JAVA Web开发中很重要的内容,其中涉及到的知识 ...

  3. java Web监听器导图详解

    监听器是JAVA Web开发中很重要的内容,其中涉及到的知识,可以参考下面导图: Web监听器 1 什么是web监听器? web监听器是一种Servlet中的特殊的类,它们能帮助开发者监听web中的特 ...

  4. Web监听器导图详解

    监听器是JAVA Web开发中很重要的内容,其中涉及到的知识,可以参考下面导图: Web监听器 1 什么是web监听器? web监听器是一种Servlet中的特殊的类,它们能帮助开发者监听web中的特 ...

  5. Web 监听器

    什么事web 监听器? Servlet规范中定义的一种特殊类 用于监听ServletContext.HttpSession和ServletRequest等象的创建与销毁的事件 用监听域对象的属性发生修 ...

  6. Jave Web使用的设计模型

    Jave Web使用的设计模型 Mybatis 源码解读-设计模式总结 ImportNew 5月15日 (给ImportNew加星标,提高Java技能) 作者:crazyant www.crazyan ...

  7. Listener(Web监听器、活化、钝化)

    Web监听器 总共有8个 划分成三种类型 定义一个类,实现接口 注册 | 配置监听器 监听三个作用域创建和销毁 request -httpServletRequest session -httpSes ...

  8. java Web监听器实现定时发送邮件

    首先介绍java定时器(java.util.Timer)有定时执行计划任务的功能,通过设定定时器的间隔时间,会自动在此间隔时间后执行预先安排好的任务(java.util. TimerTask) 由于我 ...

  9. java Web 监听器Listener详解

    简介 JavaWeb中的监听器是Servlet规范中定义的一种特殊类,它用于监听web应用程序中的ServletContext.HttpSession和 ServletRequest这三大域对象的创建 ...

  10. web监听器解析

    监听器是web三大组件之一,事件监听机制如下: 事件:某个事件,如果初始化上下文 事件源:事件发生的地方 监听器:一个对象,拥有需要执行的逻辑 注册监听:将事件.事件源.监听器绑定在一起.当事件源发生 ...

随机推荐

  1. Array【数组】和Object【对象】的特性比较

    数组是JavaScript提供的一个内部对象,它是一个标准的集合,我们可以添加(push).删除(shift)里面元素,我们还可以通过for循环遍历里面的元素. 那么除了数组我们在JavaScript ...

  2. Python基础(3) - 数据类型:2字符串类型

    Python字符串的表示有三种方法: 1.单引号(') >>>a = 'I love python. ' 2.双引号(") >>>a = " I ...

  3. Redis 小结

    一.redis简介 redis是一款基于C语言编写的,开源的非关系型数据库,由于其卓越的数据处理机制(按照规则,将常用的部分数据放置缓存,其余数据序列化到硬盘),大家也通常将其当做缓存服务器来使用. ...

  4. sublime text 3支持GBK编码

    1.安装Package Control: 按Ctrl+~打开命令行,然后复制粘贴下面这一行代码,回车确定: import urllib.request,os; pf = 'Package Contro ...

  5. Halcon学习笔记——条形码的定位与识别

    一维码的原理与结构 条码基本原理是利用条纹和间隔或宽窄条纹(间隔)构成二进制的”0“和”1“,反映的是某种信息. 一维条码数据结构,分四个区域.组成分别为静区.起始/终止符.校验符.数据符. 一维条码 ...

  6. 【转】XDocument简单入门

    1.什么是XML? 2.XDocument和XmlDocument的区别? 3.XDocument 4.XmlDocument 5.LINQ to XML 6.XML序列化与反序列化 因为这几天用到了 ...

  7. Be opinionated out of the box but get out of the way quickly as requirements start to diverge from

    Be opinionated out of the box but get out of the way quickly as requirements start to diverge from t ...

  8. <%@ page isELIgnored="false"%>的作用

    JSP 2.0的一个主要特点是它支持表达语言(expression language).JSTL表达式语言可以使用标记格式方便地访问JSP的隐含对象和JavaBeans组件,JSTL的核心标记提供了流 ...

  9. Django 模型层之多表操作

    一.创建模型 实例: 作者表: 拥有字段:姓名(name),性别(sex),该表与书籍表之间为多对多的关系 作者详情表: 拥有字段:地址(addr),手机号(phone),该表与作者表之间为一对一的关 ...

  10. mysql if函数使用例子

    1.场景一 有时查询数量a 同时查询过滤后的数量b 2. 代码 SELECT count(id) as total_count, count( IF ( date(order_time) = DATE ...