servlet监听器统计在线人数

1.登录用户信息类

import java.util.Vector;

public class UserInfoList {

    private static UserInfoList user = new UserInfoList();
    private Vector vector = null;

    public UserInfoList() {
        this.vector = new Vector();
    }

    public static UserInfoList getInstance() {
        return user;
    }

    public boolean addUserInfoList(String user) {
        if (user != null) {
            this.vector.add(user);
            return true;
        } else {
            return false;
        }
    }

    public Vector getList() {
        return this.vector;
    }

    public void removeUserInfo(String user) {
        if (user != null) {
            vector.removeElement(user);
        }
    }
}

public class UserInfoList

2.监听器类

import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionBindingListener;

import com.fmz.UserInfoList;

public class UserInfoTrace implements HttpSessionBindingListener {

    private String user;
    private UserInfoList container = UserInfoList.getInstance();

    public UserInfoTrace() {
        user = "";
    }

    public void setUser(String user) {
        this.user = user;
    }

    public String getUser() {
        return this.user;
    }

    public void valueBound(HttpSessionBindingEvent arg0) {
        System.out.println("上线" + this.user);
    }

    @Override
    public void valueUnbound(HttpSessionBindingEvent arg0) {
        System.out.println("下线" + this.user);
        if (user != null) {
            container.removeUserInfo(user);
        }
    }

}

UserInfoTrace implements HttpSessionBindingListener

3.后台show.jsp

<%@page import="java.util.Vector"%>
<%@page import="com.listener.UserInfoTrace"%>
<%@page import="com.fmz.UserInfoList"%>
<%@ page language="java" pageEncoding="UTF-8"%>
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<title>showUser</title>
</head>
<body>
<%
    UserInfoList list = UserInfoList.getInstance();
    UserInfoTrace ut = new UserInfoTrace();
    String name = request.getParameter("name");
    ut.setUser(name);
    session.setAttribute("list", ut);
    list.addUserInfoList(ut.getUser());
    session.setMaxInactiveInterval(10);
%>
<textarea rows="8" cols="20">
<%
    Vector vector = list.getList();
    if (vector != null && vector.size() > 0) {
        for (int i = 0; i < vector.size(); i++) {
            out.println(vector.elementAt(i));
        }
    }
%>
</textarea>
</body>
</html>

show.jsp

测试:index.jsp(show.jsp页面显示的中文乱码未解决)

<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>index</title>
<style>
input,p{
margin: 5px;
padding: 3px;
}
</style>
</head>
<body>
    <form action="showUser.jsp" method="post" align="center">
        nickname: <input type="text" name="name"><br> password:
        <input type="submit" value="submit" style="margin-left:100px "><br>
    </form>

</body>
</html>

test

时间: 2024-10-19 12:11:18

servlet监听器统计在线人数的相关文章

Java Web开发——Servlet监听器

一.Servlet监听器的概念 Servlet监听器是Servlet规范中定义的一种特殊类,用于监听ServletContext.HttpSession和ServletRequest等域对象的创建与销毁事件,以及监听这些域对象中属性发生修改的事件. 监听对象: 1.ServletContext:application,整个应用只存在一个 2.HttpSession:session,针对每一个对话 3.ServletRequest:request,针对每一个客户请求 监听内容:创建.销毁.属性改变

Servlet监听器笔记总结

监听器Listener的概念 监听器的概念很好理解,顾名思义,就是监视目标动作或状态的变化,目标一旦状态发生变化或者有动作,则立马做出反应. Servlet中的也有实现监听器的机制,就是Listener,Listener是一个实现特定接口的普通java程序,专门用来监听另一个java对象的方法调用或属性改变,当被监听对象发生变动时,监听器某个方法立即被执行. 监听器Listener的使用场景 理解了概念,接下来问题就来了,监听器Listener有哪些使用场景呢? 在使用Spring框架开发jav

servlet监听器;

一.Servlet监听器的概念 Servlet监听器是Servlet规范中定义的一种特殊类,用于监听ServletContext.HttpSession和ServletRequest等域对象的创建与销毁事件,以及监听这些域对象中属性发生修改的事件. 监听对象: 1.ServletContext:application,整个应用只存在一个 2.HttpSession:session,针对每一个对话 3.ServletRequest:request,针对每一个客户请求 监听内容:创建.销毁.属性改变

JavaWeb开发——servlet监听器 listener

一.Servlet监听器的概念 Servlet监听器是Servlet规范中定义的一种特殊类,用于监听ServletContext.HttpSession和ServletRequest等域对象的创建与销毁事件, 以及监听这些域对象中属性发生修改的事件. 监听对象: 1.ServletContext:application,整个应用只存在一个 2.HttpSession:session,针对每一个对话 3.ServletRequest:request,针对每一个客户请求 监听内容:创建.销毁.属性改

Servlet监听器(转)

Java Web开发--Servlet监听器 一.Servlet监听器的概念 Servlet监听器是Servlet规范中定义的一种特殊类,用于监听ServletContext.HttpSession和ServletRequest等域对象的创建与销毁事件,以及监听这些域对象中属性发生修改的事件. 监听对象: 1.ServletContext:application,整个应用只存在一个 2.HttpSession:session,针对每一个对话 3.ServletRequest:request,针对

(转)JavaWeb开发——Servlet监听器

一.Servlet监听器的概念 Servlet监听器是Servlet规范中定义的一种特殊类,用于监听ServletContext.HttpSession和ServletRequest等域对象的创建与销毁事件,以及监听这些域对象中属性发生修改的事件. 监听对象: 1.ServletContext:application,整个应用只存在一个 2.HttpSession:session,针对每一个对话 3.ServletRequest:request,针对每一个客户请求 监听内容:创建.销毁.属性改变

Javaweb统计在线人数的小栗子

最近在学习Javaweb相关的内容(不黑不吹之前对web开发零基础),下面通过一个统计在线人数的小栗子讲讲Servlet监听器吧 开发环境 eclipse  tomcat 7 先说说这个小栗子的构思: 首先要考虑的就是通过什么方式能够统计在线人数?很容易想到可以通过session来统计在线人数为什么不是request呢?因为request在请求结束时即服务器返回资源时就被销毁了,也就是说request的作用域不足以用以统计在线人数.服务器在第一次接受一个用户请求时会给该用户分配一个session

Servlet 监听器实例

1.简单介绍一下监听器 所谓监听器就是监听事件,然后针对相应的事件进行处理 监听器举例:ServletcontextListener.HttpSessionListener.HttpSessionAttributeListener 2.设计一个统计在线人数的实例 import java.util.LinkedList; import javax.servlet.ServletContext; import javax.servlet.ServletContextEvent; import jav

servlet监听器与事件

前言 Servlet中的八大Listener 在Servlet 2.4/JSP 2.0中,共有八个Listener接口,六个Event类别. Web监听器导图详解 Web监听器导图详解 阅读目录 Web监听器 监听器的分类 Servlet版本与Tomcat版本 getAttribute与getParameter的区别 参考 监听器是JAVA Web开发中很重要的内容,其中涉及到的知识,可以参考下面导图: 回到顶部 Web监听器 1 什么是web监听器? web监听器是一种Servlet中的特殊的