社区
Web 开发
帖子详情
请问怎样用最简单的代码判断一个用户是否在线?
sunwatch
2004-08-20 07:34:01
一个用户登陆后,创建一个session,(在这里这个session名是唯一的,不存在重名session),他退出(调用distroy session)或关闭internet explore后session失效。在已知该用户的session名,怎么样在一个jsp页面里判断他是否在线。(即这个session没有失效)。代码最好能够简单写。最好不涉及servlet。
...全文
389
15
打赏
收藏
请问怎样用最简单的代码判断一个用户是否在线?
一个用户登陆后,创建一个session,(在这里这个session名是唯一的,不存在重名session),他退出(调用distroy session)或关闭internet explore后session失效。在已知该用户的session名,怎么样在一个jsp页面里判断他是否在线。(即这个session没有失效)。代码最好能够简单写。最好不涉及servlet。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
AgathaZ
2004-08-23
打赏
举报
回复
angelheart()的不错!
spiritsl
2004-08-23
打赏
举报
回复
to:angelheart(),支持,支持
ybsoft
2004-08-23
打赏
举报
回复
用SERVLET来判断 SESSION是否有效
angelheart
2004-08-23
打赏
举报
回复
这个是监听器代码
package com;
import java.util.*;
import javax.servlet.http.*;
import javax.servlet.ServletContext;
public class Userinfor implements HttpSessionBindingListener {
// 用户信息
int userId;
String userName;
public void valueBound(HttpSessionBindingEvent event) {
HttpSession session = event.getSession();
ServletContext application = session.getServletContext();
List list = (List) application.getAttribute("userlist");
if (list == null) {
list = new ArrayList();
application.setAttribute("userlist", list);
}
list.add(userName);
application.setAttribute("userlist", list);
}
public void valueUnbound(HttpSessionBindingEvent event) {
HttpSession session = event.getSession();
ServletContext application = session.getServletContext();
List list = (List) application.getAttribute("userlist");
list.remove(userName);
application.setAttribute("userlist", list);
}
public int getUserId() {
return userId;
}
public String getUserName() {
return userName;
}
public void setUserId(int i) {
userId = i;
}
public void setUserName(String string) {
userName = string;
}
}
下面就是在jsp登陆页面里面加代码,这里假设用户登陆判断成功,并且从数据库里取的userId和userName分别放入变量userId和userName里面了
<%@ page import="com.Userinfor"%>
<%
String userName = "";
int userId = 0; //userId和userName请自己从数据库取数据
if(session.getAttribute("userinfor")==null) {
Userinfor userinfor = new Userinfor();
userinfor.setUserId(userId);
userinfor.setUserName(userName);
session.setAttribute("userinfor",userinfor);
}
%>
接着是打印userlist的JSP页面
<%@ page import="java.util.*"%>
<%
List list = (List) application.getAttribute("userlist");
Iterator iter = list.iterator();
if(iter.hasNext()) {
String user = (String)iter.next();
out.print(user);
while(iter.hasNext()) {
user = (String)iter.next();
out.print(user);
}
}
%>
bluesky35
2004-08-23
打赏
举报
回复
可以用session实现
sunwatch
2004-08-23
打赏
举报
回复
可以给出代码吗?
sunwatch
2004-08-23
打赏
举报
回复
多谢
sunwatch
2004-08-22
打赏
举报
回复
各位我的意思是管理员在任意一台电脑上通过访问jsp页面就可以知道一个会员是否在线,而不是一个人登陆后在自己的电脑上看自己的session是否有效。可以吗?
angelheart
2004-08-22
打赏
举报
回复
可以啊~~~不过还是要做监听器维护userlist的~~~JSP页面负责把在线的userlist打印出来
suntmbxh
2004-08-21
打赏
举报
回复
用session 是用来跟踪客户的,比如可以判断哪个客户在访问此网页,但要判断一个用户是否在线,(只能判断他是否已经登录并且没有注销,但在session失效之前他已经走了,那就谁也没办法了) 你可以在他的登录表中添加一个字段,当他登录时,置1,注销或session失效时就置0,你只要查看这个字段就可以判断有多少人在线了,或查看谁在线,
cdsun
2004-08-21
打赏
举报
回复
mark
dawangzi16
2004-08-21
打赏
举报
回复
up
fastrunner2003
2004-08-20
打赏
举报
回复
package net.wuban.util;
import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionBindingListener;
public class SessionListener
implements HttpSessionBindingListener
{
public SessionListener()
{
IsOnline = false;
}
public boolena getIsOnline()
{
return IsOnline;
}
public void valueBound(HttpSessionBindingEvent httpsessionbindingevent)
{
IsOnline = true;
}
public void valueUnbound(HttpSessionBindingEvent httpsessionbindingevent)
{
IsOnline = false;
}
private boolean IsOnline;
}
在jsp页面
<%@ page contentType="text/html;charset=gb2312" %>
<%@ page import="net.wuban.util.*"%>
<%
ServletContext sct =getServletConfig().getServletContext();
if((SessionListener)sct.getAttribute("SessionListner")==null)
{
SessionListener sessionListener1=new SessionListener();
sct.setAttribute("SessionListner",sessionListener1);
}
session.setAttribute("SessionListner",(SessionListener)sct.getAttribute("SessionListner"));
%>
<%
SessionListener sl=(SessionListener)session.getAttribute("SessionListner");
out.print(s1.getIsOnline()?"Online":"Offline");
%>
angelheart
2004-08-20
打赏
举报
回复
如果是服务器想主动判断用户是否在线的话不可能在jsp里面判断的,既然他向服务器发送Request请求,就说明他在线,如果session.getAttribute("uesrname")此时为null的话只能说明他页面闲置时间太长了导致session失效
如果楼主只是想判断session是否有效的话,只要在登陆JSP页面里面调用session.setAtteribute("uesrname",uesrname),再在其它JSP页面用session.getAttribute("uesrname")做判断就行了
张海霖
2004-08-20
打赏
举报
回复
if (session("username")!=""){}
java源码包---java 源码 大量 实例
Tcp服务端与客户端的JAVA实例源
代码
,
一个
简单
的Java TCP服务器端程序,别外还有
一个
客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,
简单
! 多人聊天室 3...
【Python】
判断
一个
整数
是否
是回文数的三种方法
原理:用
一个
while循环,将
一个
数每次都取出首位和末位,
判断
是否
相等,只要有一次不相等退出即可。 是回文数的
判断
条件:加入
一个
变量位数,如果这个数是奇数,位数为1时,即最中间那一位数,此时退出即可,同理,...
从写游戏上手 Reach - 最安全最
简单
的 Dapp 智能合约语言
新兴的 Reach 语言是
一个
让
用户
可以像开发传统应用程序一样开发去中心化应用程序的区块链开发平台。 完全使用 JavaScript 的语法、自动验证
代码
与智能合约的安全与正确性、并且可发布在任何协议上。 Reach 使得开发...
js中如何
判断
两个对象
是否
相等?
js中如何
判断
两个对象
是否
相等?
使用php
代码
判断
数字是奇数还是偶数
代码
示例
使用php
代码
判断
数字是奇数还是偶数
代码
示例示例
代码
第一种方法第二种方法 示例
代码
is_numeric($num)用来
判断
是否
为数字 is_int($num)
判断
是否
为整数型 <?php //
判断
是否
提交了参数 if (isset($_POST['submit'...
Web 开发
81,092
社区成员
341,716
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章