会话机制 Cookie and Session
Cookie 原理:
Cookies是一个存放cookie文件(如图所示:)
Session(会话)
原理:
通过HttpServletRequest的对象来获取session
HttpSession session = request.getSession();
getSession(true)
--如果在本次请求之前有session对象,直接拿到session对象
--如果本次请求之前没有session对象,创建一个新的session对象
getSeeion(false);
--如果在本次请求之前有session对象,直接拿到session对象
--如果本次请求之前没有session对象,返回null
验证用户登录是否超时会使用getSession(false)
session 存储的两种方式:
1.使用cookie来存储jsessionId
将jsessionId传递给服务器获取session(默认)
(方式简洁,客户端启动cookie)
2.使用response.encodeURL("请求地址")
这个方法来进行url的重写将jsessionId通过url参数形式传递给服务器,从而得到session。
给一个浏览器的窗口(以及他的子窗口)拥有一个session。
session 相当于Map<String,Object>
通过HttpSession.getAttribute(String Key) 取得session 中的值,通过HttpSession.setAttribute(String Key , Object value)赋值。
多次给同一个key赋值,最后一次将之前的值覆盖掉。