监听器(测试在线人数的)第一种 HttpSessionBindingListener

Posted bichen-01

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了监听器(测试在线人数的)第一种 HttpSessionBindingListener相关的知识,希望对你有一定的参考价值。

 

index.jsp:

<%--
  Created by IntelliJ IDEA.
  User: admin
  Date: 2019/10/15
  Time: 11:52
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>HttpSessionBindingListener登录界面</title>
</head>
<body>

<form action="doLogin.jsp"method="post">
    <table align="center">
        <tr><td>
            账号姓名: <input type="text"name="userName"placeholder="请输入账号名">
            <input type="submit"value="登录">

        </td></tr>
    </table>


</form>
</body>
</html>

 

doLogin.jsp:

<%@ page import="pojo.User" %><%--
  Created by IntelliJ IDEA.
  User: admin
  Date: 2019/10/15
  Time: 11:54
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>HttpSessionBindingListener验证</title>
</head>
<body>

<%

    String userName = request.getParameter("userName");
    if(userName==null||userName.equals("")){
        response.sendRedirect("index.jsp");
    }else{
        //登录成功!
        User user = new User();
        user.setUserName(userName);
        session.setAttribute("user",user);
        response.sendRedirect("onLine.jsp");
    }
%>

</body>
</html>

onLine.jsp:

<%@ page import="pojo.User" %>
<%@ page import="constants.Constants" %><%--
  Created by IntelliJ IDEA.
  User: admin
  Date: 2019/10/15
  Time: 11:57
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>在线人数</title>
</head>
<body>


<%
    User user = null;
    if(session.getAttribute("user")==null){
        response.sendRedirect("index.jsp");
    }else{
        user = (User)session.getAttribute("user");


%>

欢迎您: <%=user.getUserName()%>
当前在线人数: <%=Constants.USER_COUNT%>
<a href="loginOut.jsp">注销</a>
<%
    }

%>
</body>
</html>

 

loginOut.jsp:

<%--
  Created by IntelliJ IDEA.
  User: admin
  Date: 2019/10/15
  Time: 12:00
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>注销</title>
</head>
<body>

<%

session.invalidate();
response.sendRedirect("index.jsp");
%>

</body>
</html>

javaBean:

Constants类:
package constants;

public class Constants {
    public static int USER_COUNT = 0;
}

User类:

package pojo;

import constants.Constants;

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

public class User implements HttpSessionBindingListener {
    private String userName;
    private String password;
    public void valueBound(HttpSessionBindingEvent httpSessionBindingEvent) {

        Constants.USER_COUNT++;
    }

    public void valueUnbound(HttpSessionBindingEvent httpSessionBindingEvent) {

        Constants.USER_COUNT--;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

 

以上是关于监听器(测试在线人数的)第一种 HttpSessionBindingListener的主要内容,如果未能解决你的问题,请参考以下文章

Java统计用户在线人数

统计在线人数

servlet监听器统计在线人数

Session统计在线人数

java监听器之实现在线人数显示

Listener监听器,实现一个显示在线用户人数