应用程序事件提供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的更多相关文章

  1. 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 ...

  2. Java Web Application使Session永不失效(利用cookie隐藏登录)

    在做 Web Application 时,因为 Web Project 有 session 自动失效的问题,所以如何让用户登录一次系统就能长时间运行三个月,就是个问题. 后来,看到 session 失 ...

  3. A candidate solution for Java Web Application - current session

    Motivation Do it once, resue for ever. Audience myself, Java Web developers Scope 应用案例 图书借阅系统 阶段1需求: ...

  4. java web.xml listener servlet 和filter加载顺序

    在该项目中总会遇到一些关于加载的优先问题.最近遇到了同样的类别似的,所以,如果你发现信息汇总下,以下是转载其他一些人,毕竟,人们写的不错.它不重复创建的轮.只是略作修改自己的观点. 首先能够肯定的是, ...

  5. Centos + nginx + JBOSS AS 7 搭建Java web application

    最近做了一个Java的web app,一直想在Centos环境中搭建一个完整的web服务器,现在开始动手. 先说说环境: 操作系统: Centos 6.3 WEB服务器: nginx-1.2.5 Ap ...

  6. Java web中listener、 filter、servlet 加载顺序

    真正的加载顺序为:context-param -> listener -> filter -> servlet 加载顺序与它们在 web.xml 文件中的先后顺序无关.即不会因为 f ...

  7. java Web 监听器Listener详解

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

  8. Java web application——基础

    概述 一个WAR文件包含了构成一个Web应用程序所需要的文件.WAR文件作为一个单元部署在一个或多个WebLogic Server实例上. WebLogic Server上的Web存档始终包含以下文件 ...

  9. Java Web Application——servlet

    概述 是一个部署于web服务器中的实现了servlet接口的Java类,用于响应web请求 Web容器(也称为servlet容器)本质上是与servlet交互的Web服务器的组件.Web容器负责管理s ...

随机推荐

  1. Kafka Consumer1

    本文的代码基于kafka的0.10.1的版本. 重新设计的原因 0.9以前的consumer是通过zookeeper来进行状态管理里的. 羊群效应 任何Broker或者Consumer的增减都会触发所 ...

  2. Android 国际区号注册手机号编码 以及常用城市列表

    附上 国际区号编码:我是定义到arrays.xml里面了 <?xml version="1.0" encoding="utf-8"?> <re ...

  3. ZBrush中功能强大的插件PaintStop

    PaintStop是ZBrush®3.1的手绘插件,可以比较真实的模拟手绘风格,尤其是用水彩笔刷画水墨风格画.PaintStop插件可供用户免费使用. PaintStop是一款功能强大的插件,已经被添 ...

  4. div控制最小高度又自适高度

    div控制最小高度又自适高度我们在用div布局的时候经常会遇到这样的一种情况:我们需要设置一个div的高度,当里面的东西超过这个高度时,让这个容器自动被撑开,也就是自适应高度.当里面的信息很少时候,我 ...

  5. (转)Hadoop Eclipse开发环境搭建

    来源:http://www.cnblogs.com/justinzhang/p/4261851.html This document is from my evernote, when I was s ...

  6. chrome 获取移动端页面元素信息

    一:背景在使用appium进行app端自动化测试的时候,一般使用的是uiautomatorviewer来给页面元素做定位.但如果遇到页面元素类型是webview的时候,则只能定位整个页面,而不能更进一 ...

  7. hibernate N+1

    http://www.cnblogs.com/sy270321/p/4769198.html

  8. 紫书 例题8-6 UVa 1606(扫描法)

    这道题目用扫描法 扫描法:在枚举的过程中维护一些重要的量, 从而简化计算 这道题用到了极角, 叉积, 高一的我表示一脸懵逼 不过自己去百度了一下好像大概看得懂. 这道题我还有一些疑问, 先这样吧 #i ...

  9. 【codeforces 128C】Games with Rectangle

    [题目链接]:http://codeforces.com/problemset/problem/128/C [题意] 让你一层一层地在n*m的网格上画k个递进关系的长方形;(要求一个矩形是包含在另外一 ...

  10. dll签名两种方法

    以下两种签名方法,都是对csp.dll签名,都不是CA颁发的,且效果不同, 一:通过自建证书签名 下载windows sdk,成功安装后,包括makecert.exe, cert2spc.exe, p ...