黑马程序员技术交流社区
标题: 【广州校区】+【原创】+使用Java监听器统计网站在线人数 [打印本页]
作者: jianhong 时间: 2018-3-15 11:46
标题: 【广州校区】+【原创】+使用Java监听器统计网站在线人数
一,监听器的介绍
Java事件监听器是由事件类和监听接口组成,自定义一个事件前,必须提供一个事件的监听接口以及一个事件类。JAVA中监听接口是继承java.util.EventListener的类,事件类继承java.util.EventObject的类。
Java事件监听器属性的新增、删除和修改划分成三种,分别针对于ServletContext、HttpSession、ServletRequest对象。
二,使用监听器统计网站在线人数
每当有一个访问连接到服务器时,服务器就会创建一个session来管理会话。我们可以通过统计session的数量来获得当前在线人数。
1:创建监听器类,实现HttpSessionListener接口。
2:重写监听器类中的方法
public class MyListener implements HttpSessionListener {
public int count = 0;// 记录session的数量
@Override
public void sessionCreated(HttpSessionEvent sessionEvent) {// 监听session的创建
count++;
sessionEvent.getSession().getServletContext().setAttribute("Count", count);
}
@Override
public void sessionDestroyed(HttpSessionEvent sessionEvent) {
{// 监听session的撤销
count--;
sessionEvent.getSession().getServletContext().setAttribute("Count", count);
}
}
}
3:在web.xml中配置监听器。
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
<!-- 统计在线人数 -->
<listener>
<listener-class>com.itheima.MyListener</listener-class>
</listener>
</web-app>
3:编写login.jsp页面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>login.jsp</title>
</head>
<body>
欢迎您:您的会话ID是: ${pageContext.request.session.id}<br/>
当前在线人数:${applicationScope.Count}<br/>
<a href="logout.jsp">退出</a>
</body>
</html>
4:编写logout.jsp页面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>logout.jsp</title>
</head>
<body>
<%
session.invalidate();
%>
当前在线人数:${applicationScope.Count}
您已经成功退出
</body>
</html>
5:将项目部署到Tomcat,启动Tomcat访问login.jsp页面,显示当前在线人数为1
6:点退出时,跳转到logout.jsp页面,显示当前在线人数为0
项目结构如下图:
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |