Session基础

文章目录

  • 什么是Session
  • session与cookie的区别和联系
  • Session的存
  • Session的取


什么是Session

  • 服务器为每个用户浏览器创建一个会话对象(session对象),一个浏览器只能产生一个session
  • 当新建一个窗口访问服务器时,还是原来的那个session。session中默认保存的是当前用户的信息。因此,在需要保存其他用户数据时,我们可以自己给session添加属性。
  • session(会话)可以看为是一种标识,通过带session的请求,可以让服务器知道是谁在请求数据。

session与cookie的区别和联系

  • session是由服务器创建的,并保存在服务器上的。在session创建好之后,会把sessionId放在cookie中返回(response)给客户端。返回的代码应该是这样子的。返回的cookie是保存在客户端的。
//获取id
String sessionId = session.getId();
//创建cookie
Cookie cookie = new Cookie("JSESSIONID", sessionId);
cookie.setPath(request.getContextPath());
response.addCookie(cookie);
  • 以后的每次HTTP请求都会带着sessionId,来跟踪用户的整个会话。
  • session的过期和超时与cookie的过期没有什么联系,都是可以分别进行设置的。但是当session或cookie中任意一方过期,那么用户就需要重新登录了。

Session的存

//首先获取session
HttpSession session = request.getSession();
//往session中存入你想要的东西
session.setAttribute("userName",userName);
session.setAttribute("password",passWord);
String userId = userService.getUserId(userName);
session.setAttribute("userId",userId);
session.setAttribute("roleId",userService.getUserRoleId(userId));
//完成,存就是这么简单

Session的取

String userName = (String) request.getSession().getAttribute("userName");

你可能感兴趣的:(#,Spring,java)