美文网首页
JavaWeb之Session

JavaWeb之Session

作者: 伍陆柒_ | 来源:发表于2019-04-28 09:36 被阅读0次

Session机制
session机制采用的是在服务器端保持 HTTP 状态信息的方案 。

除了使用Cookie,Web应用程序中还经常使用Session来记录客户端状态。Session是服务器端使用的一种记录客户端状态的机制,使用上比Cookie简单一些,相应的也增加了服务器的存储压力。

Session是另一种记录客户状态的机制,不同的是Cookie保存在客户端浏览器中,而Session保存在服务器上。客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。这就是Session。客户端浏览器再次访问时只需要从该Session中查找该客户的状态就可以了。

如果说Cookie机制是通过检查客户身上的“通行证”来确定客户身份的话,那么Session机制就是通过检查服务器上的“客户明细表”来确认客户身份。Session相当于程序在服务器上建立的一份客户档案,客户来访的时候只需要查询客户档案表就可以了。

当程序需要为某个客户端的请求创建一个session时,服务器首先检查这个客户端的请求里是否包含了一个session标识(即sessionId),如果已经包含一个sessionId则说明以前已经为此客户创建过session,服务器就按照session id把这个session检索出来使用(如果检索不到,可能会新建一个,这种情况可能出现在服务端已经删除了该用户对应的session对象,但用户人为地在请求的URL后面附加上一个JSESSION的参数)。如果客户请求不包含sessionId,则为此客户创建一个session并且生成一个与此session相关联的sessionId,这个session id将在本次响应中返回给客户端保存。

常见方法:

// 设置属性
session.setAttribute("login_user",userinfo);
// 获取属性
Userinfo userinfo = (Userinfo)session.getAttribute("login_user");
// 删除属性
session.removeAttribute(userinfo);
// getId
String sid = session.getId();
// 销毁
session.invalidate();
// 持久化session
session.setMaxInactiveInterval(秒);

设置全局session过期时间,以分钟为单位

<session-config>
        <session-timeout>60</session-timeout>
</session-config>

注意:浏览器关闭,session不会立刻销毁,它默认的生命周期是30分钟

Cookie和Session的比较

1、存放位置不同
Cookie保存在客户端,Session保存在服务端。
2、存取方式的不同
Cookie是保存在客户端浏览器的一段文本(name:value),不能存储对象等一些复杂信息
Session是存储在服务端的一个对象,它可以存储任意类型的数据
3、安全性的不同
Cookie是以明文的形式保存在客户端的,对用户是可见的,Session保存在服务端,对用户不可见
4、对服务器造成的压力不同

典型应用

Cookie :保存登录者用户名密码、用户的浏览历史等
Session:保存登录者信息,购物车信息,验证码等

会话跟踪四种方式

①Cookie
②Session
③URL重写

<a href="<%=response.encodeURL("login.jsp") %>">重新登录</a>
解析的url中附带了jsessionid

④隐藏域

<input type="hidden" name="jsessionid" value="${jsessionid}">

相关文章

  • JavaWeb之Session

    Session机制session机制采用的是在服务器端保持 HTTP 状态信息的方案 。 除了使用Cookie,W...

  • JavaWeb之Cookie和Session

    Cookie 概念: 完成会话跟踪的一种机制 cookie 机制采用的是在客户端保持 HTTP 状态信息的方案。 ...

  • JavaWeb之Cookie和Session

    七、Cookie和Session 目录:会话、Cookie、Session(重点) 1.会话 会话:用户打开一个浏...

  • JavaWeb(十)Session

    1、session在不同环境下的不同含义 (1)session,中文经常翻译为会话,其本来的含义是指有始有终的一系...

  • JavaWeb - Cookie/Session

    Cookie/Session 会话 会话:用户打开一个浏览器,点击了很多超链接,访问了多个web资源,关闭浏览器,...

  • HttpSession

    HttpSession概述 HttpSession是由javaweb提供的,用来会话跟踪的类,session是服务...

  • JavaWeb基础之Cookie与Session

    Cookie:Cookie是客户端技术,程序把每个用户的数据以cookie的形式写给用户各自的浏览器。当用户使用浏...

  • JavaWeb开发之状态管理Session

    session(会话) 什么是session: ①是服务器端的状态管理技术。②当浏览器访问服务器时,服务器会创建一...

  • JavaWeb:Listener监听器ServletContex

    一、 Context、Request、Session作用域与生命周期 在介绍JavaWeb:Listener监听器...

  • JavaWeb基础(六)-Cookie和Session

    1.Cookie和Session 在JavaWeb基础(五)中,我们分享了.Servlet规范、Servlet生命...

网友评论

      本文标题:JavaWeb之Session

      本文链接:https://www.haomeiwen.com/subject/pvjqnqtx.html