读书人

怎么在Action中获取用户session中的值

发布时间: 2012-01-22 22:38:43 作者: rapoo

如何在Action中获取用户session中的值?
@Override

public ActionForward list(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) {
buzzLog.info( "-@Override-list--- ");
int ret = 1;

HttpSession session = request.getSession();
String val = (String) session.getAttribute( "test ");
if ( val == "yes ") {
super.list(mapping, form, request, response);
return mapping.findForward(LIST);
}
val取到的值是空的

在用户登录的时候已经setAttribute( "test ", "yes ");

[解决办法]
判断写错了吧,应该是
if (val.equals( "yes ")){
super.list(mapping, form, request, response);
return mapping.findForward(LIST);
}
[解决办法]
不好意思,想着application了.
不是==啦...是val.equal( "yes ")
[解决办法]
那就session没获取到拜,在仔细看看你设置session的时候有没错。
或者session这个会话有没有存在。
[解决办法]
问题可能出在:
1 不知道lz判断val是空的,是不是通过这个语句判断的 if ( val == "yes ") 还是通过debug判断的,改为 ` "yes ".equals(val)看看

2 HttpSession session = request.getSession();
改为:
HttpSession session = ((HttpServletRequest) request).getSession();
看看!
[解决办法]
看看你前面的页面有没有frame或者你使用了 response.sendRedirect();

window.location忘了是不是还在同一会话了。
[解决办法]
一个页面有几个frame,不同的frame是不同的session.你可以改成iframe试试。
[解决办法]
不好意思多写了一个request
应该是:


我在action 里就是这么接的:
String str = (String)request.getSession().getAttribute( "user_id ");
存的时候:
request.getSession().setAttribute( "user_id ", "123 ");


[解决办法]
把struts-config.xml贴出来,我怀疑是不是你这个action配置的时候,没有写scope= "request "
[解决办法]
request.setAttribute( "login ", "yes ");
request.setAttribute( "test ", "yes ");

val = (String) session.getAttribute(attribute);

-----------------------------------------------------
存在reqeust中,去session中能取到才怪。

-----------------------------------------------------
<c:redirect url= "/aue/calendar.do "/>

这句话,重定向了,不在同一session内。
[解决办法]
顶ls,楼主在存对象的时候存错了位置

读书人网 >Java Web开发

热点推荐