基于多用户的系统中
我把用户在登录时的信息保存在session中,如
request.getSession().setAttribute("user",user);
当访问其它页面时,这些页面在从session中读出
以进行权限判断.
但现在有一个奇怪的问题,就是在其它的机器上登录另一个帐号时,刚才那个登录帐号也变成了后登录的这个帐号.
按理说,session是保存在客户端的,怎么会重了呢
在线等
我把用户在登录时的信息保存在session中,如
request.getSession().setAttribute("user",user);
当访问其它页面时,这些页面在从session中读出
以进行权限判断.
但现在有一个奇怪的问题,就是在其它的机器上登录另一个帐号时,刚才那个登录帐号也变成了后登录的这个帐号.
按理说,session是保存在客户端的,怎么会重了呢
在线等
解决方案 »
- 难缠问题,难缠到吐血,请大家出主意
- iReport中iReport wizard 里的选择 layout 总是过不去
- 关于ajax,不进Action
- 大家好!我现在有一个txt文件,怎么样让它在JSP页面上显示!!
- 咨询一个mysql数据并发,造成数据统计不准确的问题,特急!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- 奇怪,棘手,大家帮我看看。
- 关于log4j相对路径的问题
- 为什么在EditPlus里写的中文拷到Notepad里面是乱码,拷到QQ的输入框里就是好的?
- 对数据库中的数据进行缓存是一次性全部取出还是按需取出效率高呢?
- 这种错误是什么意思?
- 还是JSTL问题
- 为什么java会自已重编译?然后session就没了.如下
1、cookie,cookie中会有一个字段JSESSIONID来标示你这个会话,以从服务器内存中找到正确的session.
2、URL重写,就是把这个JSESSIONID写在URL请求参数里。
默认情况下是cookie机制。
你这种情况可能发生的一个原因就是JSESSIONID重复了,但这种事件的几率应该很小。
request.getSession().setAttribute("user",user);
在再另一台机子上登录
request.getSession().setAttribute("user",user);
第一个用户再想通过user字符串去查找session就找不到自己的了(因为又有一个设置了user字符串),是不是要通过id来查找呢。而且还有一个问题就是由于系统页面很多,很可能存在有一个探出页面,而且过一段时间要关闭,这个session就要消失了。
考虑到这些情况,是否需要使用cookie来保存呢
为什么要使用request对象获得session?request用来上下页面传值。
请问:对于全局的内置对象session来说,是否跟内置对象request有关?
试下用下方法:
session.setAttribute("user",user);
session.getAttribute("user");
这个因该没有错吧
我把用户在登录时的信息保存在session中,如
request.getSession().setAttribute("user",user);
当访问其它页面时,这些页面在从session中读出
以进行权限判断.
但现在有一个奇怪的问题,就是在其它的机器上登录另一个帐号时,刚才那个登录帐号也变成了后登录的这个帐号.
按理说,session是保存在客户端的,怎么会重了呢
在线等现在我在一台机子上登录
request.getSession().setAttribute("user",user);
在再另一台机子上登录
request.getSession().setAttribute("user",user);
第一个用户再想通过user字符串去查找session就找不到自己的了(因为又有一个设置了user字符串),是不是要通过id来查找呢。这是登录代码
user.setYhm(yhm);
user.setMm(mm);
user.setQxdo(qxdo);
user.setBm(bm);
request.getSession().setAttribute("user",user);
request.getSession().setAttribute("userpower",qxdo);这是前台读取代码
Loginin login = new Loginin();
Object yhzobj = request.getSession().getAttribute("user");
User user = (User)yhzobj;
if(user==null)
{
response.sendRedirect("/zhaotoubiao/demo/login.html");
}
String name = user.getYhm();
String qx=user.getQxdo();
对于两台机子的不同用户登录:
及第一个用户在一台机子上登录后,如用户名是a ;
过一段时间另一个用户b再在另一个机子上登录,用户名是b;
这时a用户重新刷新页面得到的却是用户名b,不知道是怎么回事。
就是第二个用户刷新时显示第一个用户的信息。
据说是服务器的一个什么设置有关系。
你用的是websphere或者weblogic吧。
搞不懂了哦
其实应该一个登陆用户有他自己的一个session,当有相同的session时,要么将第一个session踢掉,要么不让第二个用户登陆.两个相同的session没什么意义.
应该写成
session.setAttribute("user",user);String user = session.getAttribute("user");
但是有一点,request对象适用于上下页面传值。
session是全局性质的对象。
这样你的代码:request.getSession().setAttribute("user",user);是不是可以解释成为上个页面的session设置user值呢?
to:jiyanliang在后台代码中,也就是登录代码中,必须传递request对象才能产生session对象阿
这个因该没有错吧这句话从根本上就有问题,session是不会依赖request,并且session是一个静态的,可以不用初始就可以适用的全局对象,Tomcat会自己维护session对象,程序员使用就行了。
所以你说session出问题,很大的可能性在代码编写上,因为大家都在用,谁出过问题呢?我是没有遇到过。
但是有一点,request对象适用于上下页面传值。
session是全局性质的对象。
这样你的代码:request.getSession().setAttribute("user",user);是不是可以解释成为上个页面的session设置user值呢?
to:jiyanliang在后台代码中,也就是登录代码中,必须传递request对象才能产生session对象阿
这个因该没有错吧这句话从根本上就有问题,session是不会依赖request,并且session是一个静态的,可以不用初始就可以适用的全局对象,Tomcat会自己维护session对象,程序员使用就行了。
所以你说session出问题,很大的可能性在代码编写上,因为大家都在用,谁出过问题呢?我是没有遇到过。