Java web application——Listener
应用程序事件提供ServletContext和HttpSession以及ServletRequest对象状态更改的通知,用户编写响应状态更改的事件监听器类,并配置和部署他们。Servlet容器会调用事件监听器中的方法
监听器实例和线程
在将第一个请求执行到应用程序之前,容器要完成监听器类的实例化,并维护监听器类的实例直到处理完最后一个请求为止
Servlet上下文和HTTP对话的属性改变可能同时发生,但是容器不需要将这些通知同步到监听器之间,监听器类负责维持数据的完整性并明确地处理这种情况
不同监听器的作用
- Servlet上下文监听类用于管理应用程序JVM层级上的资源和状态
- Http会话的监听器类用于管理和进入Web应用程序的请求有关的资源和状态,这些请求来自同一客户端
- Servlet请求监听器用于管理贯穿于servlet请求生命周期的状态
- 异步监听器用于管理异步事件比如超时或者异步过程的完成
流程:
- 用户创建一个实现其中一个侦听器接口的事件侦听器类。
- 此实现在部署描述符中注册。
- 在部署时,servlet容器构造事件侦听器类的实例。(这就是公共构造函数必须存在的原因,如编写事件监听器类中所述。)
- 在运行时,servlet容器调用侦听器类的实例。
事件类型和监听器接口
事件监听器的配置
- 在Web.xml用<listener>配置
- 按照他们被调用的顺序注册
- 必须直接跟在 <filter> and <filter-mapping>后面
- 必须直接在<servlet>前面
编写事件监听类
- 实现一个或多个指定的接口
- 必须含有一个公开的无参构造函数
- 放在classes文件夹中或是打包成jar放到lib文件夹中
- 接收的类:
- javax.servlet.http.HttpSessionEvent提供对HTTP会话对象的访问
- javax.servlet.ServletContextEvent提供对servlet上下文对象的访问。
- javax.servlet.ServletContextAttributeEvent提供对servlet上下文及其属性的访问
- javax.servlet.http.HttpSessionBindingEvent提供对HTTP会话及其属性的访问
Java web application——Listener的更多相关文章
- ThreadLocal Memory Leak in Java web application - Tomcat
ThreadLocal variables are infamous for creating memory leaks. A memory leak in Java is amount of mem ...
- Java Web Application使Session永不失效(利用cookie隐藏登录)
在做 Web Application 时,因为 Web Project 有 session 自动失效的问题,所以如何让用户登录一次系统就能长时间运行三个月,就是个问题. 后来,看到 session 失 ...
- A candidate solution for Java Web Application - current session
Motivation Do it once, resue for ever. Audience myself, Java Web developers Scope 应用案例 图书借阅系统 阶段1需求: ...
- java web.xml listener servlet 和filter加载顺序
在该项目中总会遇到一些关于加载的优先问题.最近遇到了同样的类别似的,所以,如果你发现信息汇总下,以下是转载其他一些人,毕竟,人们写的不错.它不重复创建的轮.只是略作修改自己的观点. 首先能够肯定的是, ...
- Centos + nginx + JBOSS AS 7 搭建Java web application
最近做了一个Java的web app,一直想在Centos环境中搭建一个完整的web服务器,现在开始动手. 先说说环境: 操作系统: Centos 6.3 WEB服务器: nginx-1.2.5 Ap ...
- Java web中listener、 filter、servlet 加载顺序
真正的加载顺序为:context-param -> listener -> filter -> servlet 加载顺序与它们在 web.xml 文件中的先后顺序无关.即不会因为 f ...
- java Web 监听器Listener详解
简介 JavaWeb中的监听器是Servlet规范中定义的一种特殊类,它用于监听web应用程序中的ServletContext.HttpSession和 ServletRequest这三大域对象的创建 ...
- Java web application——基础
概述 一个WAR文件包含了构成一个Web应用程序所需要的文件.WAR文件作为一个单元部署在一个或多个WebLogic Server实例上. WebLogic Server上的Web存档始终包含以下文件 ...
- Java Web Application——servlet
概述 是一个部署于web服务器中的实现了servlet接口的Java类,用于响应web请求 Web容器(也称为servlet容器)本质上是与servlet交互的Web服务器的组件.Web容器负责管理s ...
随机推荐
- 你不知道的JavaScript(二)数组
作为一种线性数据结构,几乎每一种编程语言都支持数组类型.和c++.java这些强类型的语言相比,JavaScript数组有些不同,它可以存放任意类型的值.上节中有提到过JS中任意类型的值都可以赋值给任 ...
- jQuery学习(四)——使用JQ完成表格隔行换色
1.步骤分析: 第一步:引入jquery的类库 第二步:直接写页面加载函数 第三步:直接使用jquery的选择器(组合选择)拿到需要操作的元素(奇数行和偶数行) 第四步:分别使用CSS的方法(css( ...
- 3DES(或称为Triple DES)是三重数据加密算法(TDEA,Triple Data Encryption Algorithm)
3DES(或称为Triple DES)是三重数据加密算法(TDEA,Triple Data Encryption Algorithm)块密码的通称.它相当于是对每个数据块应用三次DES加密算法.由于计 ...
- solarwind之安装
1. 安装组件 2. 安装组件sql 3. 安装 4. 接受协议 5. 安装路径 6. 安装状态 7. 继续 8. 激活 9. 完成安装
- 编 写高性能的 SQL 语句注意事项
1. IS NULL 与 IS NOT NULL不能用 null 作索引, 任何包含 null 值的列都将不会被包含在索引中. 即使索引有多列这样的情况下,只要这些列中有一列含有 null,该列就会从 ...
- HDU 5234 Happy birthday【DP】
题意:给出n*m的格子,每个格子的值为w[i][j],在值不超过k的时候,可以往右或者往下走,问从(1,1)走到(n,m)能够得到的最大的值 类似于背包 d[i][j][k]=maxx(d[i-1][ ...
- ZBrush中功能强大的插件PaintStop
PaintStop是ZBrush®3.1的手绘插件,可以比较真实的模拟手绘风格,尤其是用水彩笔刷画水墨风格画.PaintStop插件可供用户免费使用. PaintStop是一款功能强大的插件,已经被添 ...
- 对称平方数(to_string函数,stoi函数真香)
题目描述 打印所有不超过n(n<256)的,其平方具有对称性质的数.如11*11=121. 输入描述: 无 输出描述: 每行一个数,表示对称平方数. 示例1 输入 复制 无 输出 复制 无解题思 ...
- Spring MVC 搭建过程中web.xml配置引入文件的路径问题
为啥要说一下这么low的问题,因为我是一个比较low的人,哈哈.本来我技术有限,没事干自己撘个环境找找乐趣,结果被各种基础问题,弄的一脸蒙蔽.算了不多说,直接说问题. 1.首先说一下java编译后的文 ...
- 再来一波PHP程序员必看书籍
前言 https://segmentfault.com/a/11... 内列出的是已看过的. 本篇文章内列出的书籍是准备要看或者正在看的,与大家分享. 知识无价,还是建议各位童鞋把更多的资金投入到学习 ...