- 浏览: 707009 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (260)
- web 开发 (44)
- struts (14)
- java (39)
- 我的感受 (2)
- ajax (2)
- spring (22)
- Hibernate (4)
- struts2 (1)
- java 面试题 (1)
- 英语 学习类 (2)
- jdk1.6特性 (1)
- extjs (13)
- oracle (3)
- JQuery (3)
- ┠ 『Spring 3.0』 ┨ (1)
- 『LOG4J』 (2)
- 『常用数据』 (1)
- JavaMail (0)
- 〓『 EJB3.0 』〓 (0)
- HTML5 (5)
- Canvas (0)
- spring2.5 (0)
- HPH 5 (1)
- C# .net (0)
- UML (1)
- REST (2)
- JS_validate (1)
- 项目管理文章 (1)
- 闲聊闲记 (12)
- SQL-SQL (3)
- javascript (18)
- js (4)
- linux (8)
- 电子政务 (1)
- 项目对象模型 (1)
- 系统集成项目管理 (1)
- shell (2)
- mysql (1)
- solr (5)
- cxf;services (2)
- 11 (0)
- 缓存 (1)
- cached (3)
- 单片机通信 (1)
- cached;oscache (1)
- android (15)
- android;蓝牙 (1)
- Lucene (5)
- TTS (1)
- 网络爬虫 (1)
- HtmlCleaner (1)
- iPhone (2)
- 有感而发 (1)
- Python (0)
- jetty (1)
- Redis (1)
- hadoop (1)
- socket (1)
- 色彩顾问 (1)
- javaapns (1)
- bat (1)
- object-c (4)
- ios (4)
- C-学习 (1)
- 搜索 (1)
- c# (1)
最新评论
-
annie211:
Angularjs构建一个CRUD应用可能用到的全部内容包括:数据绑定、基本模板标识符、表单验证、路由、深度链接、组件重用、依赖注入 -
潇寒听竹:
你好,请问您上传的那个APK为什么每次只能识别一次,不能连续识 ...
pocketsphinxAdroid离线语音识别---入门 -
ichenwenjin:
Angularjs构建一个CRUD应用可能用到的全部内容包括:数据绑定、基本模板标识符、表单验证、路由、深度链接、组件重用、依赖注入 -
NN_iaoiao:
问一下 你的这个People 类 是自定义的还是android ...
android 获取电话本中的联系人列表 -
wangzhe_real:
对于刚接触的我是一个很详细的教程,太感谢了
JAX-RS cxf web服务 rest简单增删改查 集成spring webService
1. Servlet listener 监听器
<1>概述
Servlet监听器用于监听一些重要事件的发生,监听器对象可以在事情发生前、发生后可以做一些必要的处理,激发一些操作,如监听在线用户数量,当增加一个HttpSession时,给在线人数加1。
编写监听器需要实现相应的接口
监听器需要在web.xml文件中配置
然而在不修改现有系统基础上,增加web应用程序生命周期事件的跟踪
<2>常用的监听接口
1) ServletContextListener:
监听ServletContext,当创建ServletContext时,激发contextInitialized(ServletContextEvent sce)方法;当销毁ServletContext时,激发contextDestroyed(ServletContextEvent sce)方法。
2) ServletContextAttributeListener:
监听对ServletContext属性的操作,比如增加/删除/修改
3) HttpSessionListener:
监听HttpSession的操作。当创建一个Session时,激发sessionCreated(SessionEvent se)方法;当销毁一个Session时,激发sessionDestroyed (HttpSessionEvent se)方法。
4) HttpSessionAttributeListener:
监听HttpSession中的属性的操作。当在Session增加一个属性时,激发attributeAdded(HttpSessionBindingEvent se) 方法;当在Session删除一个属性时,激发attributeRemoved(HttpSessionBindingEvent se)方法;当在Session属性被重新设置时,激发attributeReplaced(HttpSessionBindingEvent se) 方法。
下面来实现一个HttpSessionListener的实例。实现当前在线人数。方法如下:
1 建一个类用来记录在线人数代码如下:
public class OnlineCounter {
private static Long onlineCount = 0L;
public static Long getOnlineCount() {
return onlineCount;
}
public static void raise(){
onlineCount++;//加一个人数
}
public static void reduce(){
onlineCount--;//减一个人数
}
}
2 建一个类并实现HttpSessionListener接口 代码如下:
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
public class OnlineCounterListener implements HttpSessionListener {
/**
* session 对象创建时被调用
*/
public void sessionCreated(HttpSessionEvent arg0) {
// TODO Auto-generated method stub
OnlineCounter.raise();
}
/**
* session 对象销毁时被调用
*/
public void sessionDestroyed(HttpSessionEvent arg0) {
// TODO Auto-generated method stub
OnlineCounter.reduce();
}
}
在写上后要在xml文件里注册这个监听器如下:
<listener>
<listener-class>com.listener.OnlineCounterListener</listener-class>
</listener>
3 下面写的是一个servlet类用于当用户离开时销毁当前用户的session对象。因为客户端和服务器的连接是没有状态的。服务器是通过判断客户隔多少时间没有访问session就失效。
当你退出ie你的当前前前session并没有销毁。所以写以下一个类。用于销毁session。当你退出ie.就把session销毁。使在线人数变得更准确。代码如下:
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ExitServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request,response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.getSession().invalidate();//将将将session销毁
PrintWriter out=response.getWriter();//获得一个out输出
out.println("<script>window.close()</script>");//用于关闭ie
}
}
写完这个类之后不要忘了要在xml 注册这个servlet 代码如下:
<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>Exit</servlet-name>
<servlet-class>com.listener.Exit</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Exit</servlet-name>
<url-pattern>/servlet/Exit</url-pattern>
</servlet-mapping>
4 就可以使用这个监听器了。如下简单的使用:
<body>
当前在线人数为${requestScope.onlineCount}人
<a href="<%=request.getContextPath()%>/servlet/Exit" >退出</a>
</body>
发个言吧。随便写一句。你觉得那里还不足呢。。我是北京应用技术大学
- mySessionListener.rar (358.7 KB)
- 下载次数: 23
发表评论
-
Java 数据验证
2017-05-12 10:27 1101在web开发当前就会遇到一些数据有效性验证的相关代码编 ... -
新浪多图片显示兼容IE
2015-04-16 22:12 599新浪多图片显示、写死我了!要一个上传多图片的、成果分享给你 ... -
Jconp-在线截图-ie6,7,8,9.ff-ok版测试通过
2013-12-26 09:00 945------- http://www.zha ... -
Angularjs构建一个CRUD应用可能用到的全部内容包括:数据绑定、基本模板标识符、表单验证、路由、深度链接、组件重用、依赖注入
2013-04-26 17:27 12410使用Angularjs 优点: 构建一个CRUD应用可 ... -
网页自动 追加
2012-01-06 10:15 904自动追加就是滚动条接到窗口最底部时,进行异步加载数据追加到后面 ... -
ckedit 替换表情
2011-12-01 12:46 1118http://blog.csdn.net/zh ... -
分享、工具,JiaThis
2011-10-21 11:17 1174先感谢一下jiathis 什么我也不说,你一看,,你就懂了! ... -
JAX-RS cxf web服务 rest简单增删改查 集成spring webService
2011-09-14 14:35 5759没时间什么也不多说了。所有的话都在代码里。 ... -
html 开头设计、、css
2010-10-20 15:25 851/* 主页css */ *{margin:0px; padd ... -
javascript添加当前页到收藏夹
2010-10-20 14:14 930external.AddFavorite( "htt ... -
js中如何定义class 工厂方式 构造函数方式 原型方式 动态原型方式 混合工厂方式
2010-10-20 12:28 1264工厂方式 function Car(){ va ... -
在一个htm页面中导入在同一目录下的“StyleSheet1.css”样式表
2010-10-20 11:26 1805<style>@import StyleSheet ... -
在HTML中,实现每隔60秒自动刷新页面的功能
2010-10-20 11:21 3430设置html 头 <meta http-equiv=& ... -
可以调用HTTP请求类的open()和send()方法
2010-10-20 10:54 1756xmlhttp_request.open('GET', URL ... -
为了兼容多种不同版本的浏览器,一般将创建XMLHttpRequest类的方法
2010-10-20 10:45 1642var xmlhttp;//全局使用 //除了IE6及其 ... -
JavaScript类继承
2010-10-18 20:43 0类之间的继承关系是现实世界中遗传关系的直接模拟,它表示类之间的 ... -
JavaScript反射机制
2010-10-18 19:38 2038反射机制是指程序在运行期间能够获取自身的信息,例如一个对象能够 ... -
自定义JavaScript对象
2010-10-18 19:32 1007<script type="text/java ... -
JavaScript异常处理
2010-10-18 18:44 1252在代码的运行过程中一 ... -
JavaScript框架编程
2010-10-18 18:41 1582一个HTML页面可以有一个或多个子框架,这些子框架以<i ...
相关推荐
Servlet监听器是Java Web开发中的一个重要概念,它允许开发者在特定事件发生时执行代码,比如在Web应用程序启动、停止,或者在某个Servlet被创建或销毁时。在这个“servlet监听器实现踢人小案例”中,我们将探讨如何...
Servlet监听器是实现了Java Servlet API中特定接口的类,例如`ServletContextListener`、`ServletRequestListener`和`HttpSessionListener`等。当Web应用启动、关闭,或者用户会话创建、销毁等事件发生时,监听器会...
Servlet监听器是实现了特定接口的Java类,这些接口定义了针对不同Web应用程序事件的回调方法。例如,`HttpSessionListener`用于监听会话的创建和销毁,`ServletRequestListener`则关注请求的开始和结束。在这个...
Servlet监听器技术是Java Servlet规范中的一项重要特性,它允许开发者在特定的Servlet容器事件发生时执行自定义的代码逻辑。这些事件可以包括Web应用程序的初始化、终止,或者是Servlet或Servlet上下文...
在Java Web开发中,servlet监听器是一种用于监听应用环境、会话、请求对象等域对象事件的组件。它们可以用于检测和响应特定的事件,如会话创建、属性更改或请求开始等。本文将详细介绍如何利用servlet监听器实现显示...
Java基于servlet监听器实现在线人数监控功能的方法 本文主要介绍了Java基于servlet监听器实现在线人数监控功能的方法,通过实例形式分析了ServletContextListener监听功能的相关使用步骤与操作技巧。 一、了解...
在实现逻辑和流程设计中,Servlet监听器可以与HttpSessionAttributeListener结合使用,来实现在线考生的登录验证、断点续答和实时保存等功能。具体来说,可以在Servlet监听器中维护一个在线考生的列表容器,存放在线...
综上所述,Java Servlet监听器提供了强大的功能,能够帮助开发者实现对Web应用的细粒度控制和扩展,是构建健壮、高效Web应用程序的重要工具。通过熟练掌握和合理使用监听器,开发者可以更好地管理和优化应用程序的...
在本文中,我们将深入探讨Java EE(J2EE)中的Servlet监听器以及它们在Web应用程序中的作用,特别是在访问人数统计和引入MVC模式方面。首先,让我们了解什么是Servlet监听器。 Servlet监听器是Java Servlet规范的一...
JAVA Servlet监听器是指在Servlet容器中,用于监听一些重要事件的发生,监听器对象可以在事情发生前、发生后做一些必要的处理。监听器可以分为多种类型,每种类型都有其特定的应用场景和用途。 ...
Servlet监听器是Java Web开发中的一个重要概念,它允许开发者在特定事件发生时执行代码,比如在Web应用程序启动或停止时,或者在某个Servlet实例被创建或销毁时。本教程将深入探讨Servlet监听器的工作原理、类型以及...
### Servlet监听器总结 #### 一、Listener概念与作用 - **定义**:在Java Web开发中,Listener(监听器)是一种特殊的组件,主要用于监听容器内的特定事件,并根据这些事件的发生执行相应的处理逻辑。 - **功能**...
Servlet监听器是实现了Java Servlet API中特定接口的类,这些接口定义了对Web应用生命周期事件的监听。例如,`ServletContextListener`接口用于监听Web应用的初始化和销毁,`HttpSessionListener`接口用于监听用户...
开发Servlet监听器需要实现Servlet规范定义的接口,例如实现ServletContextListener接口需要覆盖contextInitialized和contextDestroyed方法。在web.xml配置文件中注册监听器,可以指定多个监听器并控制它们的加载...
在这个“Servlet监听器例子”中,我们将深入探讨如何使用`ServletContextListener`, `HttpSessionListener`, 和 `HttpSessionAttributeListener`来实现不同的功能。 首先,`ServletContextListener`接口用于监听...
在这个“servlet过滤器做的简单登陆demo”中,我们将探讨如何利用过滤器实现一个基础的登录验证系统。这个例子非常适合初学者理解和实践过滤器的用法。 1. **Servlet Filter原理**: Servlet过滤器遵循`Filter`...