Session 时时监控例子

王朝java/jsp·作者佚名  2006-01-08
宽屏版  字体: |||超大  

/**这是管理user信息的类

文件名为onLineUser.java

*/

import javax.servlet.http.*;

import javax.servlet.*;

import java.util.*;

public class onLineUser implements HttpSessionBindingListener {

public onLineUser(){

}

private Vector users=new Vector();

public int getCount(){

users.trimToSize();

return users.capacity();

}

public boolean existUser(String userName){

users.trimToSize();

boolean existUser=false;

for (int i=0;i<users.capacity();i++ )

{

if (userName.equals((String)users.get(i)))

{

existUser=true;

break;

}

}

return existUser;

}

public boolean deleteUser(String userName) {

users.trimToSize();

if(existUser(userName)){

int currUserIndex=-1;

for(int i=0;i<users.capacity();i++){

if(userName.equals((String)users.get(i))){

currUserIndex=i;

break;

}

}

if (currUserIndex!=-1){

users.remove(currUserIndex);

users.trimToSize();

return true;

}

}

return false;

}

public Vector getOnLineUser()

{

return users;

}

public void valueBound(HttpSessionBindingEvent e) {

users.trimToSize();

if(!existUser(e.getName())){

users.add(e.getName());

System.out.print(e.getName()+"\t 登入到系统\t"+(new Date()));

System.out.println(" 在线用户数为:"+getCount());

}else

System.out.println(e.getName()+"已经存在");

}

public void valueUnbound(HttpSessionBindingEvent e) {

users.trimToSize();

String userName=e.getName();

deleteUser(userName);

System.out.print(userName+"\t 退出系统\t"+(new Date()));

System.out.println(" 在线用户数为:"+getCount());

}

}

/////////////////////////////////////////////////////////////////////////////

<%

/**这是显示在线用户的jsp文件

文件名为onLineUser.jsp

*/

%>

<%@ page contentType="text/html;charset=gb2312" %>

<%@ page import="onLineUser,java.util.*" %>

<jsp:useBean id="onlineuser" class="onLineUser" scope="application"/>

<html>

<head>

<title>搞定JSP在线人数</title>

</head>

<body>

<center>

<p><h1>登陆成功,欢迎您访问!</h1></p>

</center>

<% session = request.getSession(false); %>

<%

String username=request.getParameter("username");

if (onlineuser.existUser(username)){

out.println("用户<font color=red>"+username+"</font>已经登陆!");

}else{

session.setMaxInactiveInterval(50); file://Sesion有效时长,以秒为单位

session.setAttribute(username,onlineuser);

out.println("欢迎新用户:<font color=red>"+username+"</font>登陆到系统!");

}

out.println("<br>当前在线用户人数:<font color=red>"+onlineuser.getCount()+"</font><br>");

Vector vt=onlineuser.getOnLineUser();

Enumeration e = vt.elements();

out.println("在线用户列表");

out.println("<table border=1>");

out.println("<tr><td>用户名</td></tr>");

while(e.hasMoreElements()){

out.println("<tr><td>");

out.println((String)e.nextElement()+"<br>");

out.println("</td></tr>");

}

out.println("</table>");

%>

<center>

<p>elapsed制作</p>

<p> </p>

<%

out.println("<p><a href='logout.jsp?username="+username+"'>退出系统</a></p>");

%>

</center>

</body>

</html>

////////////////////////////////////////////////////////////////////////////////////

<%

/**这是用户退出的jsp文件

文件名为logout.jsp

*/

%>

<%@ page contentType="text/html;charset=gb2312" %>

<%@ page import="onLineUser,java.util.*" %>

<jsp:useBean id="onlineuser" class="onLineUser" scope="application"/>

<html>

<head>

<title>搞定JSP在线人数</title>

</head>

<body>

<center>

<p><h1>登陆成功,欢迎您访问!</h1></p>

</center>

<%

String username=request.getParameter("username");

if(onlineuser.deleteUser(username))

out.println(username+"已经退出系统!");

else

out.println(username+"没有登陆到系统!");

%>

<center>

<p>elapsed制作</p>

<p> </p>

<p><a href="logout.jsp">退出系统</a></p>

</center>

</body>

</html>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有