jsp页面无法获取action传来的session

dingxu2003 2009-11-25 12:39:11
//登录
public ActionForward doLogin(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)throws IOException {
UserForm userForm = (UserForm) form;
UserInfo ui=userForm.getUserInfo();
ui=ub.login(ui.getDyzh(), ui.getPwd());
session=request.getSession();
session.setAttribute("current_user", ui);
request.setAttribute("if_user", "yes");
return mapping.findForward("updatePwd");

}

//修改密码
public ActionForward doUpdatePwd(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)throws IOException
{
UserForm userForm = (UserForm) form;
UserInfo ui=userForm.getUserInfo();
UserInfo ui2=ub.getUserByNamePwd(ui.getDyzh(), ui.getPwd());
ub.updatePwd(ui.getDyzh(), ui.getNewPwd());
ub.updateState(ui.getDyzh(),1);
UserInfo ui3=(UserInfo)session.getAttribute("current_user");
ui3.setPwd(ui.getNewPwd());
ui3.setState(1);
session.setAttribute("current_user", ui3);
return mapping.findForward("main");

}


上面两个方法是action里的方法,由上可知:
在登录方法里,我创建了session.setAttribute("current_user", ui);
在修改密码方法里,我为session赋了新值session.setAttribute("current_user", ui3);
然后转发到main.jsp页面:return mapping.findForward("main");
可是我在main.jsp页面里却无法获得session:session.getAttribute("current_user")
为什么?
...全文
275 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
三界五行外 2009-11-26
  • 打赏
  • 举报
回复
public ActionForward doUpdatePwd(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)throws IOException
{
UserForm userForm = (UserForm) form;
UserInfo ui=userForm.getUserInfo();
UserInfo ui2=ub.getUserByNamePwd(ui.getDyzh(), ui.getPwd());
ub.updatePwd(ui.getDyzh(), ui.getNewPwd());
ub.updateState(ui.getDyzh(),1);
UserInfo ui3=(UserInfo)session.getAttribute("current_user");
ui3.setPwd(ui.getNewPwd());
ui3.setState(1);
session.setAttribute("current_user", ui3);
return mapping.findForward("main");

}

请问,你这段代码难道不报错吗,session这个对象哪里来的,即没有类型定义也没有实例化。
dingxu2003 2009-11-26
  • 打赏
  • 举报
回复
没人遇到这种情况吗?
dingxu2003 2009-11-26
  • 打赏
  • 举报
回复
楼上的,我该加的都加上去了
chen7788 2009-11-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 skywq 的回复:]
修改密码中的session应该是初始化的session吧

前面是不是该加上session=request.getSession();
[/Quote]

我觉得一楼的说的对。
dingxu2003 2009-11-26
  • 打赏
  • 举报
回复
我在每处使用session的地方,使用session.getId();获取session的Id
发现从action的方法跳转到指定JSP页面时,session是不同的,也就是说id不同。
为什么?
飞扬的尘埃 2009-11-25
  • 打赏
  • 举报
回复
两个session的ID,你可以打印出来看看;应该是不同的,建议使用session = request.getSession(false);
岁月之梦 2009-11-25
  • 打赏
  • 举报
回复
直接用${current_user}取,如果是对象的话那就取属性名!
Skywq 2009-11-25
  • 打赏
  • 举报
回复
修改密码中的session应该是初始化的session吧

前面是不是该加上session=request.getSession();
zweny 2009-11-25
  • 打赏
  • 举报
回复
通过session传递应该是在一个会话中啊,我觉得五楼说的有道理,是不是存放时的问题?
飞扬的尘埃 2009-11-25
  • 打赏
  • 举报
回复
楼主说的是Action中的两个方法,Action中的两个方法就一定是在一个会话中?我不确定。
道光2008 2009-11-25
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 yuangudeyu 的回复:]
不好意思,我没说清楚。
这个所谓ID,就是session.toString();得到的结果,也就是session在内存中的标识,同一个session,toString()方法得到的结果应该一致。
引用 4 楼 dingxu2003 的回复:
两个session的ID?


[/Quote]
一次会话中还存在两个sessionId,你真是误导人,回去好好看看书去
gaoyangboy 2009-11-25
  • 打赏
  • 举报
回复
看在页面里面有没有设置将session关闭了。
isSession="true"
飞扬的尘埃 2009-11-25
  • 打赏
  • 举报
回复
不好意思,我没说清楚。
这个所谓ID,就是session.toString();得到的结果,也就是session在内存中的标识,同一个session,toString()方法得到的结果应该一致。
[Quote=引用 4 楼 dingxu2003 的回复:]
两个session的ID?

[/Quote]
dingxu2003 2009-11-25
  • 打赏
  • 举报
回复
楼上的,你的不对吧
zhangwenmin 2009-11-25
  • 打赏
  • 举报
回复
呵呵<%=request.getParameter(属性)%>
liuc0317 2009-11-25
  • 打赏
  • 举报
回复
session.getAttribute("current_user") 取不到值应该是你放入的时候有问题吧!
这样试试!
request.getSession().setAttribute("current_user");
把current_user放入session中!
dingxu2003 2009-11-25
  • 打赏
  • 举报
回复
两个session的ID?

81,091

社区成员

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

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