关于session。。。

小_Y 2009-05-14 01:36:47
用session 怎么判断用户是否登陆的问题。。。
用监听器么?
给点 思路 或 从code....
...全文
129 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
lywlx2013526 2009-05-17
  • 打赏
  • 举报
回复
//如果session中不存在该用户的登录信息,转入登录页面
User user = (User) session.getAttribute("LOGINED.USER");
if(user == null){
respinse.sendRedirect("login.jsp");
}
rayInJava 2009-05-16
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 hn1232 的回复:]
对于用不同的浏览器打开登陆相同的id,用什么办法呢?
[/Quote]

你可能还没理解我意思。
你的Id标示肯定是唯一的。假设你登陆了,那么把你的唯一标示存在application中。
你不管用什么浏览器,什么方式,怎样登陆。只要是同一个账号,去application中查询,如果有相同id就证明该用户已登录。

关键是,要在用户离开的时候清除掉他的在线状态。

hn1232 2009-05-16
  • 打赏
  • 举报
回复
对于用不同的浏览器打开登陆相同的id,用什么办法呢?
rayInJava 2009-05-16
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 robyjeffding 的回复:]
登陆正确时:保存用户信息:
User user=new User();
session.setAttribute("user",user);
在其他页面判断:如果session中有值,表示已经登陆,否则未登陆
if(session.getAttribute("user")!=null){//已经登陆了
response.sendRedirect("index.jsp");//进入首页
}else{
response.sendRedirect("login.jsp");//到登陆页进行登陆
}
最好做个过滤器,就不用每个页面都判断了!
[/Quote]

问题不能这样解决的,开两个浏览器窗口,是两个session。。。

你可以把每个用户的登录id存在application里,这样就是存在在整个容器当中了。
然后从application里读取判断是否已经登录,但是用户退出或关闭浏览器的时候一定要记得清除application中的用户记录。

在线聊天室的实现机制就是这样的。
小_Y 2009-05-16
  • 打赏
  • 举报
回复
如果在用同一个用户和密码登陆后会怎样?
robyjeffding 2009-05-15
  • 打赏
  • 举报
回复
登陆正确时:保存用户信息:
User user=new User();
session.setAttribute("user",user);
在其他页面判断:如果session中有值,表示已经登陆,否则未登陆
if(session.getAttribute("user")!=null){//已经登陆了
response.sendRedirect("index.jsp");//进入首页
}else{
response.sendRedirect("login.jsp");//到登陆页进行登陆
}
最好做个过滤器,就不用每个页面都判断了!
luffyke 2009-05-15
  • 打赏
  • 举报
回复
//判断是否已经登录
String name;
name=(String)session.getAttribute("user");
if(name!=null){
%>
<br/>您已经登陆,1秒后跳转到主页
<%
response.setHeader("refresh","1;URL=main.jsp") ;
return;
}


if(isValid){ //登录成功的话,将account放在session里面!
session.setAttribute("user",(Object)account);
}
xlonlon 2009-05-15
  • 打赏
  • 举报
回复
用户登录了验证成功,就新建一个session,然后以后就判断用户是否有session来和session内容来判但什么用户是否登录
kenpjigu 2009-05-14
  • 打赏
  • 举报
回复
同上
lyq870806 2009-05-14
  • 打赏
  • 举报
回复
<%
boolean isLog=false;
try{
isLog=((string)session.getAttribute("isLog")).equals("1");//获得用户是否登录的信息
}
catch(Exception e){}


%>
dinghun8leech 2009-05-14
  • 打赏
  • 举报
回复
不对啊,登录一次后,你就将一些信息写入session中,下次无论谁再登,就先查session中有无此信息,有则表示已经登录
小_Y 2009-05-14
  • 打赏
  • 举报
回复
如果该用户不退出。
在登陆一次 怎么判断他已经登陆?
oklinsong 2009-05-14
  • 打赏
  • 举报
回复
登录时把用户信息存到session内,以后判断里面是否有就可以了。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧