求救用session高手

maqingshuang369 2011-03-28 09:24:24
为什么在登陆的Action中的request.getSession().setAttribute("user",user)放值;而在其他的Action中用request.getSession().getAttribute("user");中取不到值呢??????????
在线等 十万火急。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
...全文
133 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
NueFriend 2011-03-29
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 lffsonic 的回复:]

1.setAttribute("user",user)里面的user对象可能为NULL,你要设置user对象的属性是不是没有设置
2.getAttribute("user") 你进行类型转换没有。
[/Quote]

类型转换的话,IDE会提示错误,很大可能是情况1
Jeelon 2011-03-28
  • 打赏
  • 举报
回复
调试下到底那个值有没有传进去
比如你在传的时候可以先打印出来看看 到底得没有得到值
sinkary 2011-03-28
  • 打赏
  • 举报
回复
我也碰到这样的问题:

login.jsp请求login action,在action里setAttribute,然后跳转到loginsuccess.jsp中,在这个页面里可以直接session.getAttribute。

但是当在loginsuccess.jsp中利用AJAX请求另一个action B时,
B不能request.getSession().getAttribute。

想弄明白 session 是不是由第一个 JSP 隐式创建,然后,这个session可以在之后的哪些文件中获得?由JSP发出的AJAX请求重定向的文件不能获得这个session吗?

大家一起研究一下。
sugarTan 2011-03-28
  • 打赏
  • 举报
回复
传个参数。
HttpSession session = request.getSession(false);

可能:
request.getSession().setAttribute("user",user)放值,user本身就是空的;
而在其他的Action中用request.getSession().getAttribute("user")当然也就取不到了。

也有可能其他的Action不是同一个浏览器发送的请求。
hepeng_8 2011-03-28
  • 打赏
  • 举报
回复
确定放进去了吗
before_zero 2011-03-28
  • 打赏
  • 举报
回复

HttpSession session = getSession(fasle)
if(session == null){
log("session is null")
return ;
}
User user = (User)session.getAttribute("user");
if(user == null){
log("user is null")
return ;
}
miaomiao_j 2011-03-28
  • 打赏
  • 举报
回复
你这里放进去 的user是个对象吧
如果随便拿到话 肯定取不到
devin_jia 2011-03-28
  • 打赏
  • 举报
回复
调试下 看哪步错误
maqingshuang369 2011-03-28
  • 打赏
  • 举报
回复
有啊,传值的时候有。有时候管用。又是不管用。
amos1989 2011-03-28
  • 打赏
  • 举报
回复
请问你登陆了么???
请问你登陆的时候,你的判断方法有问题吗? 根据用户名和密码查找到用户了吗? 还是为null列??

自己一个环节一个环节的检查....

No one can help you but youself
lffsonic 2011-03-28
  • 打赏
  • 举报
回复
1.setAttribute("user",user)里面的user对象可能为NULL,你要设置user对象的属性是不是没有设置
2.getAttribute("user") 你进行类型转换没有。
哈哈哈3234 2011-03-28
  • 打赏
  • 举报
回复
想解决也很简单
哈哈哈3234 2011-03-28
  • 打赏
  • 举报
回复
肯定取不到咯,你真是笨! jsp 都没处理咯!
shine333 2011-03-28
  • 打赏
  • 举报
回复
1 放进去的是不是空?中间有没有清空或者session.invalidate()
2 如果struts 1,确保request是从方法参数中传入,而不是作为Action的成员变量,那有线程安全问题——Action实例是复用的。其他代码/框架/类库也请考虑次问题。
3 你前端的页面是否存在Frameset/iframe之类的问题
4 IE6的bug,由window.open(url, "TARGET")之类引起,前一个IE6进程(一个IE6进程对应一个iexplore.exe,同时对应一个session)打开了一个叫做"TARGET"的窗口。后面的IE6进程(新的exe/session)如果仍然执行window.open(url, "TARGET")或者<a href="url" target="TARGET">,目标窗口仍然是进程1对应的窗口,导致父子俩窗口属于不用的进程、SESSION,其他“古董浏览器”尤其是不支持多窗口模式的,都有可能有此问题
5 你应该没用到。集群问题

先打印每次session的id,看看是不是一个session,然后配置session 的listener,看看,何时动了
xziblack 2011-03-28
  • 打赏
  • 举报
回复
确定放进去了吗?还是User对象本身就是空的啊?

81,094

社区成员

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

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