彻底搞定JSP的在线人数

js|在线|在线人数

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

文件名为onLineUser.java

欢迎访问javajia家(http://www.javajia.com),由yuking制作。2001.1.1
*/

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

欢迎访问javajia家(http://www.javajia.com),由yuking制作。2001.1.1
*/
%>
<%@ 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>登陆成功,欢迎您访问Java家!</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); //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>yuking制作</p>
  <p> </p>
<%
out.println("<p><a href='logout.jsp?username="+username+"'>退出系统</a></p>");
%>
</center> 
</body> 
</html> 

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

文件名为logout.jsp

欢迎访问javajia家(http://www.javajia.com),由yuking制作。2001.1.1
*/
%>
<%@ 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>登陆成功,欢迎您访问Java家!</h1></p>
</center>
<% 
String username=request.getParameter("username");
if(onlineuser.deleteUser(username))
out.println(username+"已经退出系统!");
else
out.println(username+"没有登陆到系统!");
%> 
<center> 
  <p>yuking制作</p>
  <p> </p>
  <p><a href="logout.jsp">退出系统</a></p>
</center> 
</body> 
</html> 

时间: 2024-08-07 19:32:07

彻底搞定JSP的在线人数的相关文章

彻底搞定JSP在线人数

js|在线|在线人数 彻底搞定JSP在线人数 **这是管理user信息的类 文件名为onLineUser.java 欢迎访问javajia家(http://www.javajia.com),由yuking制作.2001.1.1 */ import javax.servlet.http.*; import javax.servlet.*; import java.util.*; public class onLineUser implements HttpSessionBindingListene

jsp页面分页 一句代码搞定

问题描述 本人最近写了一个在struts1.2spring2.0hibernate3.2的基础上使用分页在需要分页的页面只需一句代码就可以实现分页具体功能有上一页下一页首页尾页跳转到多少页每页显示多少条数据共多少页当前页还支持事件触发对当前页数据的排序要需要的请加QQ群java技术联盟106041212像群主索要或者在群里索取亦可java技术联盟欢迎你的加入使用者只需添加一个分页jar包加上一句代码就可以实现只需这样一句话一个标签例如:<paging:pagingform="address

我使用Tomat做Java WEB开发,总是时不时出现乱码问题,我现在想彻底搞定乱码问题,请教大家,

问题描述 我使用Tomat做Java WEB开发,总是时不时出现乱码问题,我现在想彻底搞定乱码问题,请教大家,我应该如何做? 解决方案 这是因为你没有搞懂乱码产生的原因:乱码产生的原因是由于每一个环节所使用的编码不一致,如页面编码,请求编码,数据库存贮的编码,只有保证它们都是同一编码才不会出现乱码.我一般推荐你使用utf-8编码.对于使用Tomcat的话,一般做好以下几步就可以如你所说地彻底搞定乱码问题:1.设置Tomcat的request编码,这要配置Tomcat的server.xml文件,找

格子啦一键还原 轻松搞定数据备份还原“其实只在瞬间!”

无论是在家悠闲的宅男宅女,还是在公司拼搏的上班族,电脑里面的数据一直是我们关心的东西.常常有人感叹:电脑死机了,以前的快乐时光找不回了;电脑崩溃了,报表文档不见了;电脑瘫痪了,上级要的报告没了,要被炒鱿鱼了--有没有办法可以解决这个问题,让我们不在为电脑数据问题而烦恼呢?格子啦一键还原就可以轻轻松松搞定数据备份还原. 格子啦一键还原(http://hy.gezila.com )是第一款实现3秒备份,5秒还原的秒杀软件,采用数据地图专利技术可创建1000个还原点,恢复到不同时候,系统瘫痪F11一键

vb 数组问题,求各位大神搞定,谢谢

问题描述 vb 数组问题,求各位大神搞定,谢谢 Private Sub Command1_Click() Dim strDataValue() As StringDim stray() As StringDim strss As StringDim ar1() As StringDim sss As StringDim i As Integer strss = ""1245121443437676764"" ar1 = Split(strss) For i = 0

帮你快速搞定网页配色的方法(附配色神器)

  完全零基础的新手如何做好网页配色?今天@喪心病狂十六夜貓 这篇好文,从网页基色.强调色.深色到应用整个配色方案 都有详细的流程与教学,每个步骤几乎都不用思考,用文章提供的配色神器就可以搞定了,你只要决定整个风格就行了.好东西千万別错过,来收! 目录 决定基色 决定强调色 决定深色 让我们应用配色方案 01. 首先决定基色 首先,来决定网站的基色吧!虽然说你可以使用任何你喜欢的颜色,但为了让别人理解你的设计意图和理念,尽量还是需要注意以下几点. 善于使用手边的资料 客户端的标志上常用的颜色,往

如何利用6个摄影构图法搞定设计布局?

  摄影设计双学习!今天腾讯的同学一边聊摄影,一边聊设计,总结了6个实用的摄影技巧,同样适合拿来搞定网页设计中的布局,设计是主,摄影是客,客从主意,帮你快速理解网页上的构图,来学习咯. 小K :一幅好照片要把观众的注意力吸引到趣味中心的被摄主体上.无论是拍什么类型的照片,都会有一个主体.你喜欢拍人物,拍生态,这些都不是问题,但是一旦主体被模糊,欣赏照片时就会忽略照片的主体,这样的照片是不失败不完美的,因为真正想让观众看的东西并没有一眼看到.例如婚纱照,主体肯定是人物新娘和新郎.如果目光都被新娘后

10个文字排版秘诀搞定你的PPT设计

  10个文字排版秘诀搞定你的PPT设计          资深视觉设计师 Janie Kliever 在 Design School 发表了一篇文章,列出 10 个能帮你增进文字排版的诀窍和密技,虽然介绍的是英文字型,不过还是相当实用,让我们一起来看看吧! 1.将要表达的讯息配上适当的感觉 用了两种差不多的字型?或是你总是用最喜欢的那一种字型?以上都是没有妥善选择字型的情形. 每种字型都散发独特的情感或个性,也许是友善.新潮.严肃或傻里傻气,但大部分的字型并不是万用的,所以你要判断一个字型对你

分分钟搞定IOS远程消息推送

分分钟搞定IOS远程消息推送 一.引言 IOS中消息的推送有两种方式,分别是本地推送和远程推送,本地推送在http://my.oschina.net/u/2340880/blog/405491这篇博客中有详细的介绍,这里主要讨论远程推送的流程与配置过程. 二.远程推送机制的原理 1.从一张很火的图说起 搜索IOS远程推送,你总能看到一张如下的流程示意图,因为这张图确实很火,所以我也将它引用在此: 这张图示意的很清晰,大致意思是这样:你的应用服务端将消息发送到apple的APNS服务器,APNS服