javaweb过滤器与器_java过滤器配置_java器怎么写(13)

电脑杂谈  发布时间:2017-05-17 04:02:27  来源:网络整理

需求:统计当前访问网站的人数有多少人?

什么时候我们可以知道用户访问了网站?

只要用户访问了我们的网站,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>


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/shouji/article-47577-13.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 孔颙
      孔颙

      还要我们其它舰开进越南

    • 刘浩
      刘浩

      应该不是南京判的

    • 李梦霞
      李梦霞

      小子人太狂了要付出代价的

    热点图片
    拼命载入中...