enter.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<body>
<!--创建一个用户登录的表单,提交到doEnter页面-->
<form action="doEnter.jsp" method="post">
来宾名:<input type="text" name="guestName"/><br/>
<input type="submit" value="进入"/>
</form>
</body>
</html>
doEnter.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@page import="entity.User"%>
<%
//从请求中取出访客名
String guestName = request.getParameter("guestName");
//如果来宾名称输入为null或者为空,则重新登录
if (guestName == null || guestName.equals("")) {
response.sendRedirect("enter.jsp");
} else {
//创建用户对象
User user = new User();
//在user对象中保存访客名
user.setUserName(guestName);
//在session中保存User对象
session.setAttribute("guest", user);
response.sendRedirect("online.jsp");
}
%>
online.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@page import="entity.User"%>
<%@page import="entity.Constents"%>
<body>
<%
entity.User user = null;
//判断有没有guest属性
if (session.getAttribute("guest") == null) {
response.sendRedirect("enter.jsp");
} else {
user = (entity.User) session.getAttribute("guest");
%>
您好,<%=user.getUserName()%><br /> 此时在线人数为:<%=Constents.ONLINE_USER_COUNT%><br />
<a href="doOut.jsp">离开</a>
<%
}
%>
</body>
doOut.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
//使用session失效
session.invalidate();
response.sendRedirect("enter.jsp");
%>
Constents.java
package entity;
public class Constents {
//静态整型变量,用来保存在线的人数
public static int ONLINE_USER_COUNT=0;//网站在线人数
}
User.java
package entity;
import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionBindingListener;
public class User implements HttpSessionBindingListener{
private int id;
private String userName;
private String password;
private String email;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
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;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public void valueBound(HttpSessionBindingEvent event) {
//存入session是自动调用
Constents.ONLINE_USER_COUNT++;
}
public void valueUnbound(HttpSessionBindingEvent event) {
//从session中删除自动调用
Constents.ONLINE_USER_COUNT--;
}
}
谷歌
IE