一开始我不知道保存为类对象的session可以取出来转换为这个类对象。让我花了很多时间。
存session:
参数必须写:HttpServletRequest request
实体类:
public class UserLoginDTO { @NotNull(message = "用户名不能为空。") private String userId; @NotNull(message = "密码不能为空。") private String passWord; }
public class LoginUser { private String userID; private String userName; }
存session:
public String login(HttpServletRequest request, @Valid @ModelAttribute UserLoginDTO userLoginDTO, Model model) { LoginUser loginUser = employeeService.userLogin(userLoginDTO); HttpSession httpSession = request.getSession(); //返回当前reqeust中的HttpSession,当前reqeust中的HttpSession 为null,就创建一个新的Session,否则返回null httpSession.setAttribute("loginUser", loginUser);//设置loginUser return ""; } }
获取session:
public String init(HttpServletRequest request,Model model) { HttpSession httpSession = request.getSession(); Object loginUser =httpSession.getAttribute("loginUser");// 获取刚才存入的session LoginUser lUser=(LoginUser) loginUser;//将Object对象转换为LoginUser对象。 String employeeId= lUser.getUserId(); System.out.println(employeeId); // 输出来看一下是不是自己想要的 return ""; }
与本文相关知识点有关的文档,有疑惑可以试着看一下:
标题:对request.getSession(false)的理解(附程序员常疏忽的一个漏洞):http://blog.csdn.net/xxd851116/archive/2009/06/25/4296866.aspx