`
Aether
  • 浏览: 14263 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

JSP拾遗(八)——Listener

    博客分类:
  • Java
阅读更多

Javax.servlet中定义了三类监听器:ServletContex相关、ServletRequest相关、和HttpSession相关的监听器。

 

ServletContex相关监听器:

ServletContextListener:

实现该接口的对象可以接收到web应用中servlet上下文载入或销毁的事件通知。需要在配置文件(web.xml)里面设置。

定义有如下方法:

void contextInitialized(ServletContextEvent sce):servlet上下文开始初始化时触发;context初始化时,所有的ServletContextListener都将先于filterservlet的初始化前被通知。

void contextDestroyed(ServletContextEvent sce):在servlet上下文即将关闭时触发;context 关闭时,所有的filterservlet都将在ServletContextListener被通知前被destory()ed.

 

(事实上,contextListenerfilterservlet的初始化顺序依次是listenerfilterservlet,因此不可以反向引用它们的初始化数据,例如不能在filter初始化时使用servlet的初始化数据,不能在listener初始化时使用filterservlet里面的初始化数据)

 

ServletContextAttributeListener:

实现该接口的对象可以接收到web应用中servlet上下文配置变动的事件通知。需要在配置文件(web.xml)里面设置。

定义有如下方法:

void attributeAdded(ServletContextAttributeEvent scab):servlet上下文增加了一个属性时触发;

void attributeRemoved(ServletContextAttributeEvent scab):servlet上下文移除一个已存在的属性时触发;

void attributeReplaced(ServletContextAttributeEvent scab):servlet上下文替换一个已存在的属性时触发。

 

ServletContex相关监听器一般不需要应用程序来使用。除非你需要实时地检测配置项的信息更改,而如果必须得这样做的话,你最好把这些配置项存储在数据库中,然后提供一个更友好的UI来提供给用户更改,而不是直接修改配置文件。

 

ServletRequest相关监听器:

ServletRequestListener:当你希望接收到各种request请求进入(coming in)或离开(out of)一个web部件(component)的消息时,你可以通过实现这个接口来完成。当一个request开始进入每一个web应用的第一个servletfilter时,将触发进入(coming in)web应用事件,当一个request离开最后一个servletfilter链的第一个filter时,将触发一个离开(out of)web应用事件。(注意filter链的执行顺序)

定义有下面两个方法:

void requestDestroyed(ServletRequestEvent sre): request将离开一个web应用;

void requestInitialized(ServletRequestEvent sre) :request 将进入一个web应用。

 

    ServletRequestAttributeListener:当你希望接收到request的属性变更事件时,可以通过实现这个接口来完成。变更通知只在request处于web应用中的时候发出。Request处于一个web应用指的是,从一个request进入(coming in)web应用到离开(out of)web应用之间的时间。

定义有下面方法:

    void attributeAdded(ServletRequestAttributeEvent srae): 向一个request里面增加一个属性时触发;

    void attributeRemoved(ServletRequestAttributeEvent srae): 从一个request里面移除一个属性时触发;

    void attributeReplaced(ServletRequestAttributeEvent srae): 从一个request里面替换一个属性时触发。

 

    ServletRequest相关监听器很少使用,也许你在调试程序的时候希望用到它们。

 

    HttpSession相关监听器:

HttpSessionActivationListener: 绑定到session的对象可以侦听通知它们会话将被钝化和会话将被激活的容器事件。在 VM 之间迁移session或者保留session的容器需要通知绑定到实现 HttpSessionActivationListener session的所有属性。

定义有下面方法:

void sessionDidActivate(HttpSessionEvent se) : 通知会话刚刚被激活;

void sessionWillPassivate(HttpSessionEvent se):通知会话即将被钝化.

 

HttpSessionAttributeListener: 为了获取此 Web 应用程序内会话属性列表更改的通知,可实现此侦听器接口。

定义有下面方法:

void attributeAdded(HttpSessionBindingEvent se) :通知已将属性添加到会话。在添加属性之后调用;

void attributeRemoved(HttpSessionBindingEvent se) :通知属性已从会话中移除。在移除属性之后调用;

void attributeReplaced(HttpSessionBindingEvent se) : 通知已替换会话中的一个属性。在替换属性之后调用。 

 

HttpSessionBindingListener: 使对象在被绑定到会话或从会话中取消对它的绑定时得到通知。该对象通过 HttpSessionBindingEvent 对象得到通知。这可能是 servlet 编程人员显式从会话中取消绑定某个属性的结果(由于会话无效,或者由于会话超时)。

定义有下面方法:

void valueBound(HttpSessionBindingEvent event) :通知对象它将被绑定到某个会话并标识该会话;

void valueUnbound(HttpSessionBindingEvent event) :通知对象要从某个会话中取消对它的绑定并标识该会话。

 

HttpSessionListener: Web 应用程序中活动会话列表的更改将通知此接口的实现。要接收通知事件,必须在 Web 应用程序的部署描述符中配置实现类。

定义有下面方法:

void sessionCreated(HttpSessionEvent se) : 通知创建了一个会话;

void sessionDestroyed(HttpSessionEvent se) : 通知某个会话即将无效。

 

HttpSession相关监听器中,HttpSessionListener最为常用,同时也是所有监听器中最常用的一个。由于Session标识了客户端的信息,通过对session的创建和销毁事件的统计,可以很容易地实现web应用中在线人数的统计。结合cookie技术,我们就可以实现应用系统的单点登录,并据此来实现系统授权数量的限制功能。

分享到:
评论

相关推荐

    jsp入门经典——非常好哦

    《jsp入门经典——非常好哦》是一本专门为初学者设计的JSP学习指南,旨在帮助没有任何编程基础或Java Web开发经验的读者快速掌握JSP技术。这本书深入浅出地讲解了JSP的基础概念、语法和应用,是入门JSP的理想教材。 ...

    java jsp listener小用法

    在JSP中,监听器(Listener)是Servlet API的一部分,属于事件驱动模型,可以监听特定的事件并进行响应。本篇文章将深入探讨如何使用Java JSP的监听器来实现用户登录次数的记录。 一、理解监听器(Listener) 在...

    JSP源码——中帆智能建站系统基础版JSP版_basic3.zip

    【JSP源码——中帆智能建站系统基础版JSP版_basic3.zip】是一个包含JSP源代码的压缩包,主要用于构建企业政府类网站。这个基础版的系统旨在提供一个快速、便捷的建站解决方案,它基于JavaServer Pages (JSP) 技术,...

    Servlet中的八大Listener

    Servlet中的八大Listener是Java Web开发中的重要组成部分,它们允许开发者监听和响应Web应用程序中的特定事件。这些Listener提供了在Servlet容器...理解并善用这八大Listener是提升Servlet和JSP编程能力的关键步骤。

    12_JavaWeb——Filter&Listener案例资源

    此资源与我的博客12_JavaWeb——Filter&Listener中的案例对应,在11_JavaWeb——Cookie&Session案例资源基础上加上了过滤器,实现了对未登录用户的拦截,希望有所帮助。

    TODO Spring注解驱动开发第38讲——你知道ApplicationListener的用法吗?

    TODO Spring注解驱动开发第38讲——你知道ApplicationListener的用法吗?

    Java开发指南--Servlets和JSP篇(PDG).rar

    Java开发指南——Servlets与JSP篇,是Java开发者深入理解Web应用开发的重要参考资料。Servlets和JSP(JavaServer Pages)是Java EE平台中用于构建动态网站的关键技术。Servlets是Java编程语言中的服务器端应用程序...

    web服务器三大组件servlet、Filter、Listener——浅浅笔记

    Web服务器中的三大组件,即Servlet、Filter和Listener,是构建动态Web应用程序的关键元素。这些组件都是基于Java的,主要用于增强和扩展Web服务器的功能。 Servlet是Java中用于处理HTTP请求的核心组件,它是动态...

    listener我的listener listener我的listener

    在Web开发,特别是基于Servlet和JSP的Java Web应用中,Listener被用来增强应用程序的功能。例如,ServletContextListener可以监听Web应用的启动和停止,用来进行一些初始化或清理工作。HttpSessionListener可以监控...

    TODO Spring注解驱动开发第39讲——你不知道的ApplicationListener的原理

    TODO Spring注解驱动开发第39讲——你不知道的ApplicationListener的原理

    Spring注解驱动开发第40讲——你晓得@EventListener这个注解的原理吗?

    Spring注解驱动开发第40讲——你晓得@EventListener这个注解的原理吗?

    TcpListener异步通信

    本文将深入探讨如何使用C#实现一个简单的TcpListener来支持异步通信,允许多客户端同时连接。 首先,我们需要理解TcpListener类在C#中的作用。TcpListener是.NET Framework提供的一个类,用于监听特定IP地址和端口...

    RAC listener.ora详解.docx

    八、IFILE 参数 listener.ora 文件的 IFILE 参数用于指定其他配置文件的路径。 IFILE = /TMP/listener_em.ora IFILE = /TMP/listener_cust1.ora IFILE = /TMP/listener_cust2.ora 本文详细介绍了 listener.ora ...

    SpringBoot整合Listener的两种方式.docx

    在Spring Boot应用中,整合Listener主要是为了监听应用的生命周期事件,例如在应用启动或关闭时执行特定的操作。这里我们讨论两种整合Listener的方式。 ### 方式一:通过注解扫描完成Listener组件的注册 1. **创建...

    JSP2.0技术手册pdf(带示例源码).zip

    9-5 jspSmartUpload ——上传和下载 9-6 本文区输入类型(Textarea) 第十章 Session Tracking 10-1 Stateful & Stateless 10-2 Session Tracking 的四种方法 10-3 Session 的生命周期 10-4 ...

    TcpListener 监听服务端

    TcpListener 是 .NET Framework 中用于创建 TCP 服务器端应用程序的关键组件。它允许程序监听来自多个客户端的连接请求,实现网络通信。在这个场景中,我们关注的是如何使用 TcpListener 创建一个可以处理多客户端...

    Java开发指南-Servlets和JSP篇(PDG)

    在Java世界中,Servlets和JSP(JavaServer Pages)是两种重要的技术,它们主要用于构建动态Web应用程序。这篇“Java开发指南-Servlets和JSP篇”将深入讲解这两个核心概念,帮助开发者理解和掌握如何利用它们来创建...

    针对Oracle的TNS listener的攻击原理及方法介绍

    Oracle TNS Listener是Oracle数据库系统中用于监听客户端请求的关键组件。其基本功能是在网络上监听客户端发来的连接请求,并对这些请求做出响应。然而,TNS Listener也存在一系列安全漏洞,尤其是缓冲区溢出和配置...

    c# socket 、TCPClient、TCPListener 用法详解.doc

    C# Socket、TCPClient、TCPListener 用法详解 C# 中的 Socket 编程是基于 Windows Sockets (Winsock) 接口的托管实现,提供了一个强大且灵活的网络编程模型。在本文中,我们将详细介绍 C# 中的 Socket 编程,包括 ...

Global site tag (gtag.js) - Google Analytics