Cookie及通过Cookie常见应用
会话的概念
会话可以简单理解为:用户打开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话。
会话需要解决的问题每个用户与服务器进行交互的过程中,各自会有一些数据,程序要想办法保存每一个用户的数据。
- 例如:用户点击超链接通过一个servlet购买了一个商品,程序应该保存用户购买的商品,以便于用户点结账servlet时,结账servlet可以得到用户商品为用户结账。
 用户购买的商品保存在request或servletContext中行不行?
保存会话数据的两种技术(web通用的技术)
- Cookie是客户端技术,cookie是小段文本信息,在网络服务器上生成,并发送给浏览器。通过使用cookie可以标识用户身份,记录用户名和密码,跟踪重复用户等。浏览器将cookie以key/value的形式保存到客户机的某个指定目录中。
 - Session是服务器端技术,利用这个技术,服务器在运行时可以为每一个用户的浏览器创建一个其独享的session对象,由于session为用户浏览器独享,所以用户在访问服务器的web资源时,雅思分数可以把各自的数据放在各自的session中,当用户再去访问服务器中的其它web资源时,其它web资源再从用户各自的session中取出数据为用户服务。
 
注:cookie原理中用户分别发送了三次请求(电视,手机,结账);上述原理图中最大的区分点在信息的存储位置(客户端or服务端)
管理HTTP协议会话状态 :Cookie 和Session 
Cookie:将用户相关数据,保存客户端 ,
用户每次访问服务器自动携带cookie数据 。 
Session :
将用户相关数据,保存服务器端,为每个客户端生成一个独立Session数据对象,雅思周末班通过对象唯一编号,区分哪个浏览器对应哪个Session。
Cookie技术 
接下来我们通过cookie来实现一个查看访问时间的案例: 
(客户端收到访问时间,浏览器会将其缓存起来,下一次访问时,会自动读取时间,在请求中携带一个访问时间的头信息)
为了能够使用户直观地知道是否是第一次访问,我们在用户第一次访问时显示一个欢迎界面,这里会用到response.setContentType()方法(response.setContentType(MIME)的作用是使客户端浏览器,武汉出国中介区分不同种类的数据,并根据不同的MIME调用浏览器内不同的程序嵌入模块来处理相应的数据。),例如
- response.setContentType(“text/html; charset=utf-8”); html
 - .setContentType(“text/plain; charset=utf-8”); 文本
 - text/javascript json数据
 - application/xml xml数据
 
如果cookie已经存在,即不是第一次访问,需要获得最后的访问时间
Cookie获得访问时间小结: 
1、通过服务器向客户端写cookie 
Cookie cookie=new
Cookie(name,value); 
response.addCookie(cookie); 
* 在HTTP协议响应头信息中
Set-Cookie: last=1339556457609
2、当客户端存在cookie之后,以后每次请求自动携带 HTTP协议请求头信息 Cookie: last=1339556456859
服务器端获得需要cookie数据 
Cookie[] cookies=request.getCookies(); —- 获得客户端所有cookie
if(cookies==null){} 判断cookie是否存在
遍历cookie获得需要信息
CookieAPI 详解 
1、将cookie写回客户端 response.addCookie(cookie); 
2、读取请求中
cookie信息 request.getCookies(); 
3、Cookie对象创建 new Cookie(name,value ) 
*
cookie的name 不允许改变 —– getName 、getValue 、setValue*
什么是会话cookie ,什么是持久cookie ?
- cookie信息默认情况,保存在浏览器内存中 —— 会话cookie,会话cookie 会在关闭浏览器时清除 (默认情况下是会话cookie)
 - 持久Cookie,cookie数据保存客户端硬盘上,通过setMaxAge 设置Cookie为持久Cookie(API:void
setMaxAge(int expiry);//Sets the maximum age in seconds for this
Cookie),例子:小学英语词汇登录网站时,会出现两个月之内自动登录之类的功能
* 在JavaAPI 中所有与时间相关参数,int 类型 单位秒,
long类型 单位毫秒 
访问cookie有效路径path:默认情况下,生成cookie时,产生默认有效访问路径
(默认生成cookie程序路径),会在对应位置生成一个文本文档
第二次访问程序携带cookie信息,如果访问路径与path不一致,不会携带cookie 信息 (不同的路径得到不同信息) 
company
cookie : path — /day07/serlvet 
last cookie : path — /day07
访问 :http://localhost/day07/servlet/path —- 同时满足/day07/serlvet、/day07 携带
company 和 last两个cookie信息 
访问 :http://localhost/day07/lastvisit —- 满足 /day07
不满足/day07/serlvet 携带 last 一个cookie 信息
注意:程序开发,尽量使用setPath手动对Path路径进行设置,例如
Cookie及通过Cookie常见应用的更多相关文章
- 详解 Cookie 纪要(vue.cookie,jquery.cookie简化)
		
今天看到一篇cookie的文章,写的特别详细,感谢 晚晴幽草轩 的分享,原文链接http://www.jeffjade.com/2016/10/31/115-summary-of-cookie/ 原文 ...
 - jQuery插件 -- Cookie插件jquery.cookie.js(转)
		
Cookie是网站设计者放置在客户端的小文本文件.Cookie能为用户提供很多的使得,例如购物网站存储用户曾经浏览过的产品列表,或者门户网站记住用户喜欢选择浏览哪类新闻. 在用户允许的情况下,还可以存 ...
 - jquery.cookie.js 操作cookie实现记住密码功能的实现代码
		
jquery.cookie.js操作cookie实现记住密码功能,很简单很强大,喜欢的朋友可以参考下. 复制代码代码如下: //初始化页面时验证是否记住了密码 $(document).ready( ...
 - HostOnly Cookie和HttpOnly Cookie
		
怎么使用Cookie? 通常我们有两种方式给浏览器设置或获取Cookie,分别是HTTP Response Headers中的Set-Cookie Header和HTTP Request Header ...
 - js读写Cookie问题(Cookie存储时长、Cookie存储域)汇总
		
在采集网站用户行为数据/使用js对用户行为做交互时,经常会使用到Cookie,了解Js Cookie的读写,以及一些细节,非常重要. 什么是Cookie 所谓Cookie,只是一条极为短小的信息, ...
 - JS设置cookie、读取cookie、删除cookie
		
JS设置cookie.读取cookie.删除cookie JS设置cookie,注意一定要path=/ ,根目录,不然其他目录可能查询不到..默认是本目录. document.cookie ...
 - Cookie机制(会话cookie和持久化cookie)在客户端保持HTTP状态信息的方案
		
1. Cookie只有一个name和一个value,不同于map;购物车设计的时候需要cookie,获取购物车的cookie id,以便于将物品多次放入购物车: 2.cookie获取了其地址,并且可以 ...
 - .NET,Cookie,写Cookie,取Cookie
		
Cookie是一段文本信息,在客户端存储 Cookie 是 ASP.NET 的会话状态将请求与会话关联的方法之一.Cookie 也可以直接用于在请求之间保持数据,但数据随后将存储在客户端并随每个请求一 ...
 - jquery cookie用法(获取cookie值,删除cookie)
		
1.引入文件 2.具体操作 $.cookie('the_cookie'); // 读取 cookie $.cookie('the_cookie', 'the_value'); // 存储 cookie ...
 
随机推荐
- 第一篇 -- Jmeter的安装下载
			
参考链接:https://blog.csdn.net/wust_lh/article/details/86095924 本篇介绍的是在Windows下安装Jmeter. 一.下载Jmeter 官网下载 ...
 - Redis内部阻塞式操作有哪些?
			
Redis实例在运行的时候,要和许多对象进行交互,这些不同的交互对象会有不同的操作.下面我们来看看,这些不同的交互对象以及相应的主要操作有哪些. 客户端:键值对的增删改查操作. 磁盘:生成RDB快照. ...
 - OOP-Klass模型 简略
			
class Model { public static int a = 1; public int b; public Model(int b) { this.b = b; } } public st ...
 - PDMan使用
			
场景: 这几天项目要完结交付,需要补很多文档.此时发现甲方要求提供数据库设计文档,尽管我觉得他们不会看,但是人家要求,还是补一下吧!时间紧迫,要赶出整个项目的数据库设计文档比较麻烦,每个两三天不行.于 ...
 - SQL Server CPU 利用率毛刺的分析定位与解决
			
一.背景 1.1 问题描述 近期发现一台SQL Server的CPU利用率很不稳定,发现不定时的飙升到100%,更可怕的是在业务繁忙时,影响了业务调用,失败率明显增加,所以,减低CPU的利用率,是迫切 ...
 - Java 使用 Apache commons-math3 线性拟合、非线性拟合实例(带效果图)
			
Java 使用 CommonsMath3 的线性和非线性拟合实例,带效果图 例子查看 GitHub Gitee 运行src/main/java/org/wfw/chart/Main.java 即可查看 ...
 - Linux必知必会的命令全集(持续更新)
			
Linux有超过五百多种命令,每个命令还有十几二十种选项,令人抓狂,本文旨在整理本人工作常用的Linux命令,希望对大家有所帮助! 1.cd 跳转文件夹 最常用的命令,没有之一. cd # 进入 ...
 - 安装Linux的步骤 包含linux下安装jdk,及mysql
			
https://mirrors.tuna.tsinghua.edu.cn/centos/7.9.2009/isos/x86_64/ 镜像下载网址,4G 左右. 安装VMware 15版本 一路下一步, ...
 - jmeter之json提取器详解
			
Json提取器详解 *Apply to:参照正则表达式提取器 *Names of created:自定义变量名. 变量名可以填写多个,变量名之间使用分号进行分隔. 一旦变量名有多个,则下方的json ...
 - 本以为精通Android事件分发机制,没想到被面试官问懵了
			
文章中出现的源码均基于8.0 前言 事件分发机制不仅仅是核心知识点更是难点,并且还是View的一大难题滑动冲突解决方法的理论基础,因此掌握好View的事件分发机制是十分重要的. 一.基本认识 1. 事 ...