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; }}