session作用域
session的作用域
session的作用域是全局的。也就是在系统运行后,你的程序运行到session的代码时,它就一直存在。我们以一个登录为例子
一、登录接口
@RequestMapping("/login")public String getUserByAccount(@RequestParam(required=false,value = "account" ) String account,@RequestParam(required=false,value ="password") String password,Model model,HttpSession session,HttpServletRequest request) {User user = userService.getUserByAccount(account, password);List<Book> list = bookService.getAllBook();request.setAttribute("list", list);System.out.println(list.toString());if (user != null) {session.setAttribute("user", user);return "/index";}else {model.addAttribute("msg","账号密码错误");return "login";}}
当我们从前端页面接收到账号、密码后,去数据库查询用户,得到一个user对象。之后把查询结果用session.setAttribute(“user”,user);放在session里。
之后,在前端页面只要 “${user.×××}”就可以获取user对象的属性进行显示。
当你的前端页面传回其它数据需要用到这一个用户时,也可以在后端代码使用session.getAttribute(“user”);获取到你登录时的user的所有属性。下面的代码是以一个用户把一本书加入书架时,要接收前端页面中 书的id,还要哪个用户的书架。这时,我们就需要user的id。
二、书籍加入书架接口
//在书籍详情页点击加入书架@RequestMapping("/addbookuser")public String getshelfBooklist(@RequestParam(required=false,value = "bookId" ) Integer bookId,Model model,HttpSession session) {BookShelf bookShelf = new BookShelf();bookShelf.setBookId(bookId);//得到session中user的所有属性User user = (User)session.getAttribute("user");//单独把user的id取过来set给书架里的userIDbookShelf.setUserId(user.getId());//上面取到bookID和userID,然后就可以调用加入书架的方法bookShelfService.addBookShelf(bookShelf);return "success";}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!