观察者模式
1. 应用于监听器(Listener),XML解析(DOM,SAX),JAVA SWING。
2. 组成:抽象主题角色,抽象观察者角色,具体主题角色,具体观察者角色。
Listener是Servlet的监听器,它可以监听客户端的请求,服务器的操作等。(如监听在线用户的数量)
当增加一个HttpSession时,就激发SessionCreated(HttpSessionEvent se)方法,这样可以给在线人数增加1
常用的监听接口有如下几个:
1. ServletContextAttributeListener监听对ServletContext属性的操作,比如增加,删除,修改属性。
2. ServletContextListener监听ServletContext。当创建ServletContext时,激发ContextInitialized(ServeltContextEvent sce)方法;当销毁ServletContext时,激发contextDestroyed(ServletContextEvent sce)方法
3. HttpSessionListener监听HttpSession的操作。当创建一个Session时,激发sessionCreated(HttpSessionEvent se)方法;当销毁一个Session时,激发sessionDestroyed(HttpSessionEvent se)方法
4. HttpSessionAttributeListener监听HttpSession中的属性的操作。当在Session增加一个属性时,激发attributeAdded(HttpSessionBindingEvent se)方法;当在Session删除一个属性时,激发attributeRemoved(HttpSessionBindingEvent se)方法;当Session属性被重新设置时,激发attributeReplaced(HttpSessionBindingEvent se)方法。
在线用户数量观察者监听器:
package com.test.listener;
import javax.servlet.ServletContextAttributeEvent;
import javax.servlet.ServletContextAttributeListener;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
public class OnLineCountListener implements HttpSessionListener,
ServletContextListener, ServletContextAttributeListener {
private int count;
public void sessionCreated(HttpSessionEvent arg0) {
count++;
setContext(arg0);
System.out.println("count数量增加1");
}
public void sessionDestroyed(HttpSessionEvent arg0) {
count--;
setContext(arg0);
System.out.println("count数量减少1");
}
private void setContext(HttpSessionEvent arg){
arg.getSession().getServletContext().setAttribute("online", new Integer(count));
}
public void contextDestroyed(ServletContextEvent arg0) {
log("contextDestroyed()");
}
public void contextInitialized(ServletContextEvent arg0) {
log("contextInitialized()");
}
private void log(String str){
System.out.println("调用了context:"+str);
}
public void attributeAdded(ServletContextAttributeEvent arg0) {
System.out.println("增加了属性:"+arg0.getName()+":"+arg0.getValue());
}
public void attributeRemoved(ServletContextAttributeEvent arg0) {
System.out.println("移除了属性:"+arg0.getName()+":"+arg0.getValue());
}
public void attributeReplaced(ServletContextAttributeEvent arg0) {
System.out.println("替换了属性:"+arg0.getName()+":"+arg0.getValue());
}
}
分享到:
相关推荐
Directory Lister Pro 1.40 是一个专业的文件目录列出工具,专为用户们提供方便、高效的文件夹浏览和导出服务。这个软件版本1.40是该系列的一个特定迭代,可能包含了优化的性能、修复的错误以及新功能的添加。 在...
首先,让我们深入了解"Directory Lister"的基本工作原理。它通过解析服务器上的文件系统,生成一个可视化的文件目录列表,包括文件名、大小、日期等信息。用户可以在浏览器中进行点击、搜索、排序和下载操作,大大...
Directory Lister V1.34 是一款专门用于创建文件夹列表的实用工具,它已经被汉化为中文,并且是特别绿色版本,意味着它无需安装,可以直接运行,方便用户快速使用。这款软件的主要功能是帮助用户生成指定目录下的...
"Directory Lister Pro"是一款专用于生成文件清单的软件,尤其在文件管理和目录遍历方面具有高效、详尽的特点。这款工具允许用户快速地浏览并列出指定目录下的所有文件和子目录,生成的清单可以按照各种参数进行排序...
人件(第二版,Tom.DeMarco,Timothy.Lister.著)
**Python库swh.lister-1.6.0.tar.gz详解** 在Python的世界里,库是程序员们构建复杂应用的基础,它们提供了丰富的功能,减少了重复劳动。本文将深入探讨名为`swh.lister`的Python库,版本号为1.6.0,其资源打包形式...
Directory Lister Pro是一款专业好用的文件列表创建工具软件。软件最主要的功能是通过Directory Lister可选择显示目录名,目录大小,目录的文件数,子目录,文件序号,文件路径,文件名称,扩展名,大小,日期,时间,类型, ...
标题中的"PyPI 官网下载 | swh.lister-0.2.1-py3-none-any.whl"指的是在Python的包索引服务(Python Package Index,简称PyPI)上发布的`swh.lister`库的0.2.1版本。PyPI是Python开发者分享和发现软件包的主要平台,...
Directory Lister Pro Portable 单文件中文汉化绿色便携破解版是一款非常方便小巧的文件夹列表创建打印工具。售价29美元。Directory Lister Pro可选择显示目录名、目录大小、目录的文件数、子目录、文件序号、文件...
标题“Lister目录列表程序 v1.0.rar”指的是一个名为“Lister”的程序的版本1.0,它被封装在一个RAR压缩包中。RAR是一种常见的文件压缩格式,用于存储和传输多个文件。这个程序的主要功能是列出指定目录中的所有文件...
Lister目录列表程序v1.0是一款开源的程序,它提供了对目录内容进行快速查看、管理和操作的功能。源码的发布使得开发者可以深入理解程序的工作原理,并根据自己的需求进行定制和扩展。在这个压缩包中,我们主要关注的...
Python库`swh.lister`是针对Python开发者的工具,版本为0.5.4,它是一个支持Python 3的库,适用于任何平台。这个库通常用于处理和列举项目中的文件和目录,帮助开发者在编程过程中更有效地管理和组织代码资源。 在...
【标题】"Attach_Lister.rar_批量_批量下载_迅雷"所指的是一款简易的批量下载工具,它模仿了迅雷(Thunder)的批量下载功能。迅雷是中国一款非常流行的下载管理软件,以其高速下载能力和对BT、HTTP、FTP等多种协议的...
Directory Lister Pro 可选择显示目录名、目录大小、目录的文件数、子目录、文件序号、文件路径、文件名称、扩展名、大小、日期、时间、类型、 所有者和属性、文件的版本、 说明、 公司信息等等,以及可执行文件 ...
Total Commander的ulister插件,32位和64位,已包含Oracle的Redist库,可预览大量文件格式。 1000 - Word for DOS 4.x 1001 - Word for DOS 5.x 1002 - Wordstar 5.0 ...1003 - Wordstar 4.0 ...
《人件》是由Tom DeMarco和Tim Lister合著的一本经典著作,它深入探讨了软件开发团队管理和人员效率提升的方方面面。这本书以其独特的视角,揭示了在IT行业中,人力资源管理对于项目成功的重要性,强调了“人”在...
该项目是一款基于PHP的Directory Lister目录列表程序的美化版设计源码,总计包含185个文件,涵盖了37个PNG图像、28个Mtn图标、25个SVG矢量图、15个JavaScript脚本、12个CSS样式表、10个PHP脚本、以及各类字体文件等...
Laravel开发-lister 列出Laravel的库
人件(第二版,DeMarco&Lister)