`
czllfy
  • 浏览: 108266 次
  • 来自: ...
社区版块
存档分类
最新评论

使用监听器Servlet

阅读更多
监听器概述

  1.Listener是Servlet的监听器
  2.可以监听客户端的请求、服务端的操作等。
  3.通过监听器,可以自动激发一些操作,如监听在线用户数量,当增加一个HttpSession时,给在线人数加1。
  4.编写监听器需要实现相应的接口
  5.编写完成后在web.xml文件中配置一下,就可以起作用了
  6.可以在不修改现有系统基础上,增加web应用程序生命周期事件的跟踪


常用的监听接口

  1.ServletContextAttributeListener
  监听对ServletContext属性的操作,比如增加/删除/修改
  2.ServletContextListener
  监听ServletContext,当创建ServletContext时,激发contextInitialized(ServletContextEvent sce)方法;当销毁ServletContext时,激发contextDestroyed(ServletContextEvent sce)方法。
  3.HttpSessionListener
  监听HttpSession的操作。当创建一个Session时,激发session Created(SessionEvent se)方法;当销毁一个Session时,激发sessionDestroyed (HttpSessionEvent se)方法。
  4.HttpSessionAttributeListener
  监听HttpSession中的属性的操作。当在Session增加一个属性时,激发attributeAdded(HttpSessionBindingEvent se) 方法;当在Session删除一个属性时,激发attributeRemoved(HttpSessionBindingEvent se)方法;当在Session属性被重新设置时,激发attributeReplaced(HttpSessionBindingEvent se) 方法。

使用范例:
由监听器管理共享数据库连接

  生命周期事件的一个实际应用由context监听器管理共享数据库连接。在web.xml中如下定义监听器:
<listener>
    <listener-class>XXX.MyConnectionManager</listener-class>
</listener> Øserver创建监听器的实例,接受事件并自动判断实现监听器接口的类型。要记住的是由于监听器是配置在部署描述符web.xml中,所以不需要改变任何代码就可以添加新的监听器。

public class MyConnectionManager implements ServletContextListener{ 
  public void contextInitialized(ServletContextEvent e) {
        Connection con = // create connection
        e.getServletContext().setAttribute("con", con);
    } 
   public void contextDestroyed(ServletContextEvent e) {
        Connection con = (Connection) e.getServletContext().getAttribute("con");
        try {
          con.close();
        }
       catch (SQLException ignored) { } // close connection
    }

  监听器保证每新生成一个servlet context都会有一个可用的数据库连接,并且所有的连接对会在context关闭的时候随之关闭。


计算在线用户数量的Linstener
(1)
Package xxx;

public class OnlineCounter { 
   private static long online = 0;    
   public static long getOnline(){
      return online;
    }
    public static void raise(){
       online++;
    }
    public static void reduce(){
       online--;
   }
}

import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;

public class OnlineCounterListener implements HttpSessionListener{
    public void sessionCreated(HttpSessionEvent hse) {
        OnlineCounter.raise(); 
    }
   public void sessionDestroyed(HttpSessionEvent hse){ 
        OnlineCounter.reduce();
    }
}

在需要显示在线人数的JSP中可是使用
目前在线人数:
<%@ page import=“xxx.OnlineCounter" %>
<%=OnlineCounter.getOnline()%>

退出会话(可以给用户提供一个注销按钮):
<form action="exit.jsp" method=post>
  <input type=submit value="exit">
</form>

exit.jsp: <%session.invalidate() ;%>

在web.xml中加入:
<listener>
  <listener-class>servletlistener111111.SecondListener</listener-class> </listener>
分享到:
评论

相关推荐

    servlet监听器案例

    在本文中,我们将深入探讨Servlet监听器的工作原理、配置和使用,结合具体的"web.xml"配置以及JSP页面的应用。 首先,我们需要了解什么是Servlet监听器。Servlet监听器是实现了Java Servlet API中特定接口的类,...

    servlet 监听器范例

    通过这个“servlet 监听器范例”,我们不仅学习了如何使用Servlet监听器来统计在线用户,还了解了如何跟踪用户登录状态。这个示例对于理解和实现在Java Web应用程序中进行用户管理、监控系统活动具有很大的价值。

    servlet监听器技术源码

    Servlet监听器技术是Java Servlet规范中的一项重要特性,它允许开发者在特定的Servlet容器事件发生时执行自定义的代码逻辑。这些事件可以包括Web应用程序的初始化、终止,或者是Servlet或Servlet上下文...

    servlet过滤器和监听器PPT课件.ppt

    servlet过滤器和监听器,servlet过滤器和监听器课件,servlet过滤器和监听器PPT

    第13章使用Servlet过滤器和监听器

    第13章使用Servlet过滤器和监听器,基础知识

    servlet事件监听器和JSP基础

    Servlet事件监听器和JSP是Java Web开发中的重要组成部分,它们在构建动态网站时起着核心作用。Servlet事件监听器允许开发者对特定的Servlet容器事件做出反应,而JSP则是用于创建动态网页的简便方式。这里我们将深入...

    web监听器代码--监听servlet

    Web监听器是Java Web应用程序中的一个重要组件,它们允许开发者在特定事件发生时执行代码,比如在Servlet上下文初始化或销毁时、用户会话创建或结束时等。在Java Web开发中,监听器通过实现特定接口并配置在`web.xml...

    servlet监听器总结

    ### Servlet监听器总结 #### 一、Listener概念与作用 - **定义**:在Java Web开发中,Listener(监听器)是一种特殊的组件,主要用于监听容器内的特定事件,并根据这些事件的发生执行相应的处理逻辑。 - **功能**...

    可以查看上线人数 监听器 servlet Ajax聊天系统

    可以查看上线人数 监听器 servlet 登出时,session失效。 UserInfoList list=UserInfoList.getInstance();//实例一个用户对象 UserInfoTrace ut=new UserInfoTrace();//实例一个ut String name=(String)session....

    j2ee20:servlet04监听器(监听四大web域)(用于访问人数的统计)、mvc模式的引入

    在本文中,我们将深入探讨Java EE(J2EE)中的Servlet监听器以及它们在Web应用程序中的作用,特别是在访问人数统计和引入MVC模式方面。首先,让我们了解什么是Servlet监听器。 Servlet监听器是Java Servlet规范的一...

    servlet 监听器的实现

    Servlet监听器是Java Web开发中的一个重要概念,它允许开发者在特定事件发生时执行代码,比如在Web应用程序启动、停止时,或者在用户会话创建、销毁时。这为程序员提供了更多的控制权,使得他们能够更好地管理和监控...

    servlet中的过滤器与监听器

    在Servlet技术中,过滤器(Filter)和监听器(Listener)是两个非常重要的概念,它们帮助开发者实现对请求和响应的拦截、处理以及管理应用程序的状态。 ### 1. Servlet过滤器 **过滤器** 是Servlet API提供的一种...

    JAVA Servlet监听器listener学习资料

    Java Servlet监听器(Listener)是Java Web开发中的一个重要组件,它们允许开发者在特定事件发生时执行自定义逻辑,而无需直接修改原有的业务代码。监听器是Servlet规范的一部分,通过实现特定的接口,开发者可以...

    jsp/servlet中过滤器和监听器的区别

    理解并熟练使用过滤器和监听器对于开发高质量的Java Web应用至关重要。它们可以提高代码的可维护性、可扩展性和安全性,同时也能帮助开发者更好地管理应用程序的状态。在实际开发中,应根据需求选择合适的技术,以...

    servlet监听器实现踢人小案例

    Servlet监听器是Java Web开发中的一个重要概念,它允许开发者在特定事件发生时执行代码,比如在Web应用程序启动、停止,或者在某个Servlet被创建或销毁时。在这个“servlet监听器实现踢人小案例”中,我们将探讨如何...

    servlet监听器

    用于监听Servlet请求中属性的添加、删除和替换事件,监听器类需实现javax.servlet.ServletRequestAttributeListener接口。 ServletRequestAttributeListener接口的方法: voidattributeAdded...

    Servlet过滤器与监听器

    Servlet过滤器与监听器

    我收集的servlet中事件监听器机制we吧xml配置详解

    这些监听器可以通过在`web.xml`配置文件中声明,或者使用Java注解(自Servlet 3.0起)进行注册。下面是如何在`web.xml`中配置一个`HttpSessionListener`的例子: ```xml ... &lt;listener-class&gt;...

Global site tag (gtag.js) - Google Analytics