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. OpenGL6-纹理动画

    代码下载 #include "CELLWinApp.hpp"#include <gl/GLU.h>#include <assert.h>#include & ...

  2. 【javascript】javascript学习之js脚本的解析步骤

    将javascript代码加入到HTML代码中,即使用<script>标签的方式有两种:直接嵌入页面中和使用外部js文件. 使用<script>标签嵌入html代码中时,需要指 ...

  3. 【Css】Layout布局(二)

    css定位(Positioning) 所谓定位,即允许你定义元素框相对于其正常位置应该出现的位置,或者相对于父元素.另一个元素甚至浏览器窗口本身的位置. css提供了三种基本的定位机制:普通流.浮动和 ...

  4. CSS3 pointer-events:none应用举例及扩展

    一.pointer-events:none是? pointer-events是CSS3中又一冉冉的属性,其支持的值牛毛般多,不过大多都与SVG相关,我们可以不用理会.当下,对于偶们来讲,与SVG划开界 ...

  5. java多线程开发之CyclicBarrier,CountDownLatch

    最近研究了一个别人的源码,其中用到多个线程并行操作一个文件,并且在所有线程全部结束后才进行主线程后面的处理. 其用到java.util.concurrent.CyclicBarrier 这个类. Cy ...

  6. C#操作Redis SortedSet 有序集合

    /// <summary> /// Redis 有序集合 /// </summary> public static void Redis_SetSorted() { Redis ...

  7. webHttpBinding

    [ServiceContract] public interface IHanger { /// <summary> /// 根据请求的用户的所属的组织,决定工单发布到哪个吊挂产线 /// ...

  8. (C++学习)关于CString的一些疑问

    #include <iostream> #include <string> #include <afx.h> #include <vector> usi ...

  9. nodejs中cookie、session的使用

    因为http会话的无状态性,为了标记用户的登录状态,便出现了cookie.cookie分为很多种,有普通cookie.签名cookie.json cookie等,这里主要记录下在express应用中如 ...

  10. Linux_vim文本编辑器指令整理

    一般指令模式 : 可以移动光标,可以删除字符和删除整列,可以复制粘贴 编辑模式 : 按下"i, I, o, O, a, A, r, R"任意一个字母时进入;按下ESC退出编辑模式 ...