全国咨询/投诉热线:400-618-9090

首页技术文章正文

Cookie和Session详解

更新时间:2018-08-31 来源:黑马程序员技术社区 浏览量:

一、 会话技术概述?
1、 什么是一次会话
用户打开浏览器访问某个网站, 在这个网站上浏览任意页面, 访问完成后将浏览器关闭的过程称为是一次会话.
2、 学习会话要解决的问题是什么?
会话技术是用于解决, 在会话过程中数据的保存问题。
3、 常用的会话技术有哪些
Cookie: 将数据保存到客户端浏览器。
Session: 将数据保存到服务器端。



二、 Cookie详解
1、 Cookie是什么?
Cookie是一个小信息, 由服务器写给浏览器的并且由浏览器来保存。
客户端保存的Cookie信息, 可以再次带给服务器。
2、 创建Cookie
Cookie cookie = new Cookie("username", "admin");
//设置cookie的有效路径, 将有效路径设置为当前应用, 则访问当前应用下的所有资源, 浏览器都会带着它给服务器。
cookie.setPath(request.getContextPath());
//设置cookie的有效时间, 不设置就是会话过程, cookie存在浏览器的内存中
cookie.setMaxAge(60 * 60 * 24 * 7);
//将cookie输出到客户端
response.addCookie(cookie);
3、 获取Cookie
// 获得浏览器带过来的所有的Cookie
Cookie[] cookies = request.getCookies();
4、 Cookie的分类
会话级别: 当没有设置Cookie的有效时间, 默认就是会话级别的Cookie.关闭浏览器Cookie就会销毁.
持久级别: 通过设置Cookie的有效时间.那么关闭浏览器Cookie还会存在.
5、 删除持久级别的Cookie
//通过setMaxAge(0), 可以销毁持久级别的Cookie。 但前提条件是, Cooike的有效路径必须一致。
Cookie cookie = new Cookie("username",null);
cookie.setPath(request.getContextPath());
cookie.setMaxAge(0);
response.addCookie(cookie);
三、 Session详解
1、 Session是什么?
Session是一个域对象, 可以用于保存用户数据
Session的作用域范围是一次会话
2、 创建Session对象
服务器端第一次调用request.getSession()时创建session
3、 销毁Session对象
Session过期。
注: 默认过期时间为30分钟, 可以通过配置web.xml修改Session的过期时间
例:
<session-config>
<session-timeout>60</session-timeout>
</session-config>
非正常关闭服务器。
注: 如果正常关闭服务器, session会序列化到硬盘.当服务器重新启动时, 会执行反序列化。
调用session.invalidate()方法。
4、 Session的执行原理
当服务器端第一次调用request.getSession()的时候, 服务器会自动为其创建一个Session对象, 并通过Cookie技术将Session的id, 发送给客户端浏览
器。 以后客户端再请求本应用中其他资源的时候, 会自动将此Cookie携带到服务器端。 这样, 服务器端在接到请求时候, 就会收到Session的id, 并根据id在
内存中找到之前创建的Session对象, 提供给请求使用。



作者:黑马程序员技术社区
首发:http://java.itheima.com/

javaee

python

web

ui

cloud

test

c

netmarket

pm

Linux

movies

robot

http://www.itcast.cn/subject/uizly/index.shtml?seozxuids

14天免费试学

基础班入门课程限时免费

申请试学名额

15天免费试学

基础班入门课程限时免费

申请试学名额

15天免费试学

基础班入门课程限时免费

申请试学名额

15天免费试学

基础班入门课程限时免费

申请试学名额

20天免费试学

基础班入门课程限时免费

申请试学名额

8天免费试学

基础班入门课程限时免费

申请试学名额

20天免费试学

基础班入门课程限时免费

申请试学名额

5天免费试学

基础班入门课程限时免费

申请试学名额

0天免费试学

基础班入门课程限时免费

申请试学名额

12天免费试学

基础班入门课程限时免费

申请试学名额

5天免费试学

基础班入门课程限时免费

申请试学名额

5天免费试学

基础班入门课程限时免费

申请试学名额

10天免费试学

基础班入门课程限时免费

申请试学名额
在线咨询 我要报名