监听器:
package org.listenerdemo;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class OnlineUserList implements ServletContextListener,HttpSessionAttributeListener,HttpSessionListener
{
private ServletContext app = null;
public void contextInitialized(ServletContextEvent sce){
this.app = sce.getServletContext();
this.app.setAttribute("online",new TreeSet());//准备集合
}
public void contextDestroyed(ServletContextEvent sce){}
public void attributeAdded(HttpSessionBindingEvent se){
Set all = (Set) this.app.getAttribute("online");
all.add(se.getValue());
this.app.setAttribute("online",all);
}
public void attributeRemoved(HttpSessionBindingEvent se){
Set all = (Set) this.app.getAttribute("online");
all.remove(se.getSession().getAttribute("userid"));
this.app.setAttribute("online",all);
}
public void attributeReplaced(HttpSessionBindingEvent se){}
public void sessionCreated(HttpSessionEvent se){}
public void sessionDestroyed(HttpSessionEvent se){
Set all = (Set) this.app.getAttribute("online");
all.remove(se.getSession().getAttribute("userid"));
this.app.setAttribute("online",all);
}
}
/* web.xml 配置
<listener>
<listener-class>
org.listenerdemo.OnlineUserList
</listener-class>
</listener>
</servlet-mapping>
<session-config>
<session-timeout>1</session-timeout>
</session-config>
*/
登陆:
<%@ page contentType="text/html;charset=GBK"%>
<%@ page import="java.util.*"%>
<html>
<head>
<title>www.baidu.com</title>
</head>
<body>
<form action="login.jsp" method="post">
用户ID: <input type="text" name="userid">
<input type="submit" value="登陆">
</form>
<%
request.setCharacterEncoding("GBK");
%>
<%
String userid = request.getParameter("userid");
if(!(userid==null ||"".equals(userid))){
session.setAttribute("userid",userid);
response.sendRedirect("list.jsp");
}
%>
</body>
</html>
在线成员列表:
<%@ page contentType="text/html;charset=GBK"%>
<%@ page import="java.util.*"%>
<html>
<head>
<title>www.baidu.com</title>
</head>
<body>
<%
request.setCharacterEncoding("GBK");
%>
<%
Set all = (Set)this.getServletContext().getAttribute("online");
Iterator iter = all.iterator();
while(iter.hasNext()){
%>
<h3><%=iter.next()%></h3>
<%
}
%>
</body>
</html>
本页面用监听器实现了在线人员的列表显示,登陆后,session-timeou 为1分钟
在监听器中,实现了ServletContextListener,HttpSessionAttributeListener,HttpSessionListener 的个别方法,以实现人员的登陆与注销.
只在了解监听器(学习中.........)
分享到:
相关推荐
《网络游戏与无线网络控制报警监听器》 网络游戏作为现代娱乐产业的重要组成部分,其背后的技术支撑是多元且复杂的。其中,无线网络控制与报警监听器在网络游戏的运行中扮演着至关重要的角色。本文将深入探讨这一...
4. **网络监听器**: 网络监听器通常用于监听网络连接和数据传输,例如套接字(Socket)监听器,可以用来接收和发送网络数据包。 5. **事件驱动架构**: 监听器模式是事件驱动架构的基础,这种架构在分布式系统、消息...
本项目“C#编写的网络流量监听器程序”就是利用C#实现对Windows操作系统网络流量的实时监控。 首先,我们要理解网络流量监听的基本原理。网络流量监听通常通过嗅探网络上的数据包来实现,这些数据包包含了通信双方...
《VC编程实现网络嗅探器》是一份关于利用VC++进行网络嗅探技术开发的PDF文档,主要针对C++程序员和对网络监控有兴趣的技术人员。网络嗅探是网络安全和网络诊断的重要工具,它能捕获并分析网络上的数据包,帮助我们...
网络监听检测系统的实现是为了及时发现网络中的异常流量,并对可能的网络监听行为进行告警和应对。这种系统不仅对于维护网络安全具有重要意义,同时也能帮助网络管理人员快速查找网络漏洞、检测网络性能和分析网络...
通过软件编程实现的协议分析,可帮助开发人员在监听器的屏幕上直观地观察到通信过程中的各种状态和参数变化。这不仅有助于开发人员深入理解ISO14443 A类智能卡通信机制,也能使他们快速定位通信过程中的问题所在,极...
### 知识点一:网络嗅探器的基本概念 ...掌握网络嗅探器的设计和实现原理对于网络安全专业人员来说是非常重要的,能够帮助他们更好地保护网络免受攻击。同时,合理的使用嗅探器也能够促进网络技术的发展和创新。
网络嗅探器是一种用于捕获、分析和记录网络流量的工具,它可以帮助网络管理员和安全专家深入了解网络上发生的情况。在本案例中,我们关注的是一个基于Java平台的网络嗅探器,它利用了名为jpcap的库来实现其功能。 *...
总之,《网络扫描技术揭秘:原理、实践与扫描器的实现》是一本全面且深入的网络安全教材,适合网络安全专业人员、系统管理员以及对网络扫描技术感兴趣的开发者阅读。通过学习本书,读者将能够系统地掌握网络扫描技术...
《网络嗅探器的设计与实现》是针对网络通信分析的重要工具进行深入探讨的主题。网络嗅探器,也称为网络分析仪或数据包捕获器,是用于监测、记录和分析网络流量的软件或硬件设备。它能帮助网络管理员、安全专家和开发...
这类编辑器通常用于IT专业人员,特别是网络管理员和系统架构师,以便于规划、设计和可视化复杂的网络布局。在本案例中,该编辑器是基于网页的,利用JavaScript语言实现,提供拖拽功能,让用户能够方便地自定义网络...
根据给定文件的信息,本文将重点探讨Android后台监听的实现机制以及如何利用这些机制来加强Android平台的安全性。首先,我们需要了解Android系统的基本结构和特点,随后深入剖析后台监听的关键技术,包括`...
总的来说,“网络管理-SNMP4J应用”包是一个实用工具,可以帮助开发人员快速上手SNMP4J,实现对oid列表类型的获取。通过学习和使用这个程序,你可以深入理解SNMP协议以及如何在Java环境中有效地利用SNMP4J库进行网络...
网络嗅探器的设计与实现旨在提供一种工具,既可用于网络管理人员检测和优化网络性能,又可帮助提升网络安全意识,防范潜在的威胁。开发这样的工具对于提高网络环境的安全性和稳定性具有积极的意义。 4. 系统分析 -...
Java聊天室是一个基于Java编程语言实现的实时通讯应用,它具备完整的用户界面,支持群聊和私聊功能,并且能够显示在线用户列表。这个项目利用了Socket编程来实现实时的数据传输,为用户提供了一个交互性强、功能丰富...
《网络嗅探器的设计与实现》这篇论文深入探讨了网络嗅探器的关键技术和应用,旨在为计算机网络安全提供一种有效的监测手段。以下是对论文内容的详细解读: 1. 开发背景:随着网络技术的飞速发展,计算机网络已经...
在Android开发中,创建一个能够显示人员列表、支持聊天功能(包括发送图片和语音)的应用是常见的需求。这个实例将涵盖多个重要的Android知识点,包括UI设计、数据存储、网络通信以及多媒体处理等。 首先,我们需要...