A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 大蓝鲸Java 中级黑马   /  2019-1-4 11:56  /  648 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

会话概述

一、会话概述
1. 什么是一次会话?
用户打开浏览器访问某个网站,在这个网站上浏览任意页面,访问完成后将浏览器关闭的过程称为是一次会话。
2. 会话要解决的问题是什么?
会话技术是用于解决,在会话过程中数据的保存问题。
3. 常用的会话技术
Cookie:将数据保存到客户端浏览器。
Session:将数据保存到服务器端。
二、Cookie
1. Cookie概述
Cookie就是由服务器发给客户端的特殊信息,而这些信息以文本文件的方式存放在客户端,然后客户端每次向服务
器发送请求的时候都会带上这些特殊的信息。
2. 创建Cookie
说明:Cookie是由服务器端向浏览器端输出的一段文本,所以可以通过response对象将Cookie写回浏览器。
3. 获取Cookie
说明:浏览器每次访问发送请求时,会携带Cookie,所以可以通过request对象获取Cookie
4. Cookie的分类
会话级别:当没有设置
Cookie的有效时间,默认就是会话级别的Cookie.关闭浏览器Cookie就会销毁.
持久级别:通过设置Cookie的有效时间.那么关闭浏览器Cookie还会存在.
5. 删除持久级别的Cookie
Cookie cookie = new Cookie("username", "admin");
//设置cookie的有效路径,将有效路径设置为当前应用,则访问当前应用下的所有资源,浏览器都会带着它给服务器。
cookie.setPath(request.getContextPath());
//设置cookie的有效时间,不设置就是会话过程,cookie存在浏览器的内存中
cookie.setMaxAge(60 * 60 * 24 * 7);
//cookie输出到客户端
response.addCookie(cookie);
// 获得浏览器带过来的所有的Cookie
Cookie[] cookies = request.getCookies();
说明:将CookiemaxAge置为0,可以销毁持久级别的Cookie。但前提条件是,Cooike的有效路径必须一致。
三、Session
1. Session概述
SessionServlet中的一个域对象,可以用于保存用户数据。Session的作用域范围是一次会话。
2. 创建Session对象
服务器端第一次调用
request.getSession()时创建session
3. 销毁Session对象
Session过期。
说明:
Session默认过期时间为30分钟,可以通过配置web.xml修改Session的过期时间。
非正常关闭服务器。
说明:如果正常关闭服务器,
session会序列化到硬盘。当服务器重新启动时,会执行反序列化。
调用
session.invalidate()方法。
4. Session的执行原理
当服务器端第一次调用
request.getSession()的时候,服务器会自动为其创建一个Session对象,并通过Cookie技术
Sessionid,发送给客户端浏览器。以后客户端再请求本应用中其他资源的时候,会自动将此Cookie携带到服
务器端。这样,服务器端在接到请求时候,就会收到
Sessionid,并根据id在内存中找到之前创建的Session
象,提供给请求使用。
四、总结
会话是服务器与浏览器的交互过程,这个过程是连续的,也可以时断时续的。会话能够把用户与同一用户发出的不
同请求之间关联起来。不同用户的会话应当是相互独立的。会话一旦建立就应当一直存在,直到用户空闲时间超过
了某一个时间界限,容器才应当释放该会话资源。在会话的存活期间,用户可能给服务器发送了很多请求,该用户
的这些请求信息都可以存储在会话中。
Cookie是客户端技术,可以用于在会话过程中保存用户的数据,但是要注意
Cookie是有大小和个数限制的,不同的浏览器限制也不一样,所以使用时要稍加注意。Session是服务器端技术,
它是
Servlet中的一个域对象,也可以用于在会话期间保存用户的数据。
Cookie cookie = new Cookie("username",null);
cookie.setPath(request.getContextPath());
cookie.setMaxAge(0);
response.addCookie(cookie);
<session‐config>
<session‐timeout>
60</session‐timeout>
</session‐config>


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马