需求:统计当前访问网站的人数有多少人?
什么时候我们可以知道用户访问了网站?
只要用户访问了我们的网站,session一定会创建。只要用户离开,点退出,session就销毁。
思路:
只要判断session创建,人数就加一
只要判断session销毁,人数就减一
人数的数据,要存在哪里?
ServletContext对象中,所有应用程序范围都可以获取,所有访问当前网站的用户,都应该可以看到人数
总思路:
1)先在servletContext中初始化人数参数;当前项目初始化的时候,将人数初始化:0人。javaweb过滤器与器
2)在器中只要判断session创建,人数就加一
3)在器中只要判断session销毁,人数就减一
代码实现:

器代码:
package cn.itcast.listener;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
publicclass MyHttpSessionListener implements HttpSessionListener {
@Override
publicvoid sessionCreated(HttpSessionEvent se) {
System.out.println("MyHttpSessionListener....sessionCreated....");
// 在器中只要判断session创建,人数就加一
ServletContext context = se.getSession().getServletContext();
// 获取里面的人数
Integer onlineNum = (Integer) context.getAttribute("onlineNum");
onlineNum = onlineNum + 1;
context.setAttribute("onlineNum", onlineNum);
}
@Override
publicvoid sessionDestroyed(HttpSessionEvent se) {
System.out.println("MyHttpSessionListener....sessionDestroyed....");
// 在器中只要判断session销毁,人数就减去一
ServletContext context = se.getSession().getServletContext();
// 获取里面的人数
Integer onlineNum = (Integer) context.getAttribute("onlineNum");
onlineNum = onlineNum - 1;
context.setAttribute("onlineNum", onlineNum);
}
}
index.jsp显示人数,显示退出链接:
<%@page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTMLPUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shouji/article-47577-13.html
反向营销
美国现在巴不得我们打
教授可否同意