jave web 监听器。
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接口
不用注册了,但还是要实现接口

jave web 监听器。的更多相关文章
- 在自定义的web监听器中嵌入web中的定时事件
在 http://www.cnblogs.com/myadmin/p/4806265.html 中说明了自定义web监听器的一些东西. 本文中的web定时任务也基于上篇文章的自定义web监听器. 新建 ...
- Web监听器导图详解(转)
阅读目录 Web监听器 监听器的分类 Servlet版本与Tomcat版本 getAttribute与getParameter的区别 参考 监听器是JAVA Web开发中很重要的内容,其中涉及到的知识 ...
- java Web监听器导图详解
监听器是JAVA Web开发中很重要的内容,其中涉及到的知识,可以参考下面导图: Web监听器 1 什么是web监听器? web监听器是一种Servlet中的特殊的类,它们能帮助开发者监听web中的特 ...
- Web监听器导图详解
监听器是JAVA Web开发中很重要的内容,其中涉及到的知识,可以参考下面导图: Web监听器 1 什么是web监听器? web监听器是一种Servlet中的特殊的类,它们能帮助开发者监听web中的特 ...
- Web 监听器
什么事web 监听器? Servlet规范中定义的一种特殊类 用于监听ServletContext.HttpSession和ServletRequest等象的创建与销毁的事件 用监听域对象的属性发生修 ...
- Jave Web使用的设计模型
Jave Web使用的设计模型 Mybatis 源码解读-设计模式总结 ImportNew 5月15日 (给ImportNew加星标,提高Java技能) 作者:crazyant www.crazyan ...
- Listener(Web监听器、活化、钝化)
Web监听器 总共有8个 划分成三种类型 定义一个类,实现接口 注册 | 配置监听器 监听三个作用域创建和销毁 request -httpServletRequest session -httpSes ...
- java Web监听器实现定时发送邮件
首先介绍java定时器(java.util.Timer)有定时执行计划任务的功能,通过设定定时器的间隔时间,会自动在此间隔时间后执行预先安排好的任务(java.util. TimerTask) 由于我 ...
- java Web 监听器Listener详解
简介 JavaWeb中的监听器是Servlet规范中定义的一种特殊类,它用于监听web应用程序中的ServletContext.HttpSession和 ServletRequest这三大域对象的创建 ...
- web监听器解析
监听器是web三大组件之一,事件监听机制如下: 事件:某个事件,如果初始化上下文 事件源:事件发生的地方 监听器:一个对象,拥有需要执行的逻辑 注册监听:将事件.事件源.监听器绑定在一起.当事件源发生 ...
随机推荐
- 如何在Eclipse/Myeclipse/Scala IDEA for Eclipse 中正确删除已经下载过的插件(图文详解)
不多说,直接上干货! 见 Eclipse/Myeclipse/Scala IDEA for Eclipse里两种添加插件的方法(在线和离线) 第一步 :在菜单栏中,找到help-------insta ...
- MySql的视图
视图是从一个或多个表中导出的表.是一种虚拟存在的表.视图就像一个窗口,通过这个窗口可以看到系统专门提供的数据.这样,用户可以不用看到整个数据库表中数据,而只关心对自己有用的数据.视图可以使用户的操作更 ...
- Dictionary<string, object>不区分大小写
Dictionary<string, object> dic = new Dictionary<string, object>(StringComparer.OrdinalIg ...
- leetcode简单题目两道(1)
Problem: You are playing the following Nim Game with your friend: There is a heap of stones on the t ...
- Boost application performance using asynchronous I/O-ref
http://www.ibm.com/developerworks/linux/library/l-async/?S_TACT=105AGX52&S_CMP=cn-a-l Introducti ...
- rem单位怎么使用
rem这是个低调的css单位,近一两年开始崭露头角,有许多同学对rem的评价不一,有的在尝试使用,有的在使用过程中遇到坑就弃用了.但是我对rem综合评价是用来做web app它绝对是最合适的人选之一. ...
- Scrum 冲刺博客第一篇
一.各个成员在 Alpha 阶段认领的任务 成员 Alpha 阶段认领的任务 黄腾龙 主要功能模块代码开发 叶城龙 部分模块代码开发,博客撰写 李心宇 代码测试,博客撰写 余腾鑫 界面设计,博客撰写 ...
- RabbitMQ - 任务队列
这次我们试着实现这样一个小程序: 嗯,就是任务队列(task queue).不是将任务集中在一堆并一直等到所有任务一并完成为止,而是将每一个任务封装为一个消息,并将其发送到队列,后台的workers就 ...
- 06.密封类 sealed
sealed 修饰 密封类是不能被继承的. 密封类是可以去继承别的类. namespace _07.密封类 { class Program { static void Main(string[] ...
- python 需求文件requirements.txt的创建及使用
在虚拟环境中使用pip生成: (venv) $ pip freeze >requirements.txt 当需要创建这个虚拟环境的完全副本,可以创建一个新的虚拟环境,并在其上运行以下命令: (v ...