servlet 体系中的 Session 对象

Session 被称为"会话对象"。Session 对象存储特定用户会话所需的属性及相关信息。这样,当用户在应用程序的页面之间跳转时,存储在 Session 对象中的变量将不会丢失,会在整个用户会话中一直存在下去。

Session 是一种记录客户状态的机制,Session 保存在服务器的内存里。客户端浏览器访问服务器时,服务器把客户端信息记录在服务器的内存里。客户端浏览器再次访问时,可以从这个 Session 中查找客户的状态。

使用 request.getSession() 方法获取 Session, 这个方法是从当前 request 中获取 session,如果获取不到 session,就会创建一个 session,并返回新创建的 session;如果获取到了,就返回获取到的 session。
可以用 request.getSession().getAttribute("属性名") 来获取 session 中的值。

用 session.setAttribute("属性名", value); 来设置属性。


request.getSession() 还可以带一个 boolean 参数:request.getSession(true/false)
参数为 true 时,如果存在会话,就返回这个会话,否则新建一个会话。
参数为 false 时,如果存在会话,就返回这个会话,否则返回 null,不创建新的会话。


获取 sessionId :
String sessionId = session.getId();

当 session 或 cookie 中任意一方过期,用户就需要重新登录。

-------------------------
Cookie 是客户端浏览器保存信息的解决方案,Cookie 就是由服务器发给客户端的信息,而这些信息以文本文件的方式存放在客户端的浏览器中,之后客户端每次向服务器发送请求时,都会带上这些信息。

往浏览器添加一个 Cookie :

Cookie cookie = new Cookie("JSESSIONID", sessionId);
cookie.setPath(request.getContextPath());
response.addCookie(cookie);

猜你喜欢

转载自blog.csdn.net/beguile/article/details/88658048
今日推荐