您的位置:首页 > Web前端 > JavaScript

09-实时统计在线人数(jsp内置对象)

2013-06-23 13:11 246 查看
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



 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息