session问题,修改时间问题。。
下面是一部分代码:
user=userLoginDao.Login(uName, uPassword);//查询此用户是否存在
HttpSession sess=request.getSession();
if(user !=null){
sess.setAttribute("user", user);//如果存在该用户就把用户整个对象保存
Users uu=(Users)sess.getAttribute("user");
1行 System.out.println(uu.getLastlogdate()+"session11111");
request.getSession().setAttribute("associlist", associlist);//保存未读消息数
//修改用户上次登陆时间
Date date=new Date();//实例当前时间
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //格式当前时间
sdf.format(date);
Users us=user;//对象赋值
2行 System.out.println(sdf.format(date)+"==");
3行 us.setLastlogdate(DateUtil.parseDate(sdf.format(date)));//时间转化 保存到对象
4行 System.out.println(us.getLastlogdate()+"=---=");
Users u=(Users)sess.getAttribute("user");
5行 System.out.println(u.getLastlogdate()+"session");
userLoginDao.updateLastLog(us);//把当前时间做为上次登陆时间
return mapping.findForward("index");
}
工程是基于struts1,hibernate,spring--ssh框架的
主要目得是用户登录后,查出用户相关信息,然后获得当前时间把数据库里的上次登录时间改为当前时间。
但是页面还是需要显示的是上次登录时间;
1行是放进session里后的时间。打印出来是对的。
2行是当前时间。
4行是修改后的时间。
5行是一开始放进session里的时间。
下面是控制台打印出来的。
2009-06-09 10:07:00.0session11111
2009-06-09 10:39:48==
Tue Jun 09 10:39:48 CST 2009=---=
Tue Jun 09 10:39:48 CST 2009session
当3行注释后5行还是数据库查出来的,
当3行注释去掉后5行就变成了当前时间了。
要怎么样才能让3行set后session里的user对象里的时间不会改掉。
如果5行打印出来的是Tue Jun 09 10:07:00 CST 2009session就说明问题解决。