Session变化问题
神鬼衣 2015-04-30 11:46:21 实现的功能:将登陆用户保存到session中,在任何页面中都可以取到session中保存的信息
使用的框架:spring mvc+spring+mybatis(ssm) eclipse jdk1.6 Ubuntu 12.0.4LTS
代码:
获取session中的值的代码(index.jsp)
${sessionScope.loginUser.userName}<%=session.getAttribute("loginUser") %><%=session.getId() %>
向session中添加值的代码:
@RequestMapping(value="/login",method=RequestMethod.POST)
public String login(User user,Model model,HttpSession session){
//HttpSession session = request.getSession();
String id = session.getId();
boolean result = userService.validateLogin(user.getUserName(), user.getPassword());
if(result){
user = userService.getUserInf(user.getUserName());
session.setAttribute("loginUser", user);
model.addAttribute("loginUser", user);
if(Constant.ROLE_T.equals(user.getPersonType())){
Teacher teacher = tchService.findOneTeacher(user.getPersonId());
model.addAttribute("teacher", teacher);
//int max = session.getMaxInactiveInterval();
session.setAttribute("teacher", teacher);
}else if(Constant.ROLE_S.equals(user.getPersonType())){
Student student = stuService.findOneStudent(user.getPersonId());
model.addAttribute("student", student);
session.setAttribute("student", student);
}
return "index";
}
return "login";
}
问题描述:
在登陆进来之后,第一次能够取得到session中保存的值,能够看到的sessionId;在第二次点击到index.jsp的时候(菜单上超链接),不论是使用El表达式还是<%=session.getAttribute("loginUser")%>都取不到值,EL不显示任何数据,<%=session.getAttribute("loginUser")%>显示null,而且对比前后的sessionid是不同的,点击几次sessionID就变几次,每次都不同;在后台看到的session的失效时间为1800,应该不会在短时间内失效。不是浏览器开启几个窗口,就只是一个session么?sessionID怎么会变?一篇茫然,求大神解救!!!!!!!!!!!!!!!!