博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
简述cookie
阅读量:6325 次
发布时间:2019-06-22

本文共 2158 字,大约阅读时间需要 7 分钟。

1.Cookie的概述

* Cookie是客户端的技术(默认把Cookie保存在每个用户的浏览器上)* 程序把每个用户的数据以cookie的形式写给用户各自的浏览器* 当用户使用浏览器再去访问服务器中的web资源时,就会带着各自的数据去

2.Cookie的原理

* Cookie基于客户端的技术,Cookie的对象是服务器端创建的,默认把Cookie保存在客户端浏览器上* Cookie基于http的协议,默认有两个(set-cookie是响应头,服务器端到客户端 cookie是请求头,客户端到服务器端)* Cookie可以在客户端与服务器端进数据的传递

3.Cookie对象的api

Cookie(String name, String value) -- 构造方法,是key:value的形式(强调:Cookie中不支持中文的)String getName()    -- 获取cookie的名称String getValue()    -- 获取cookie的值void setValue(String newValue)    -- 设置值void setMaxAge(int expiry)    -- 设置Cookie的有效时间

如果浏览器关闭了,Cookie默认就被清除了,Cookie默认的情况下是保存在浏览器的缓存中

设置有效的时间,Cookie就变成了持久的Cookie.默认的情况下,把Cookie保存到本地的文件中

需求:显示用户上次访问的时间(和Cookie的原理相同),注意不管是否是第一次访问,都要设置cookie的有效时间

// 设置输出到页面的编码格式,解决字符流的中文乱码问题response.setContentType("text/html;charset=UTF-8");// 首先判断是否是第一次访问Cookie[] cookies = request.getCookies();// 查找名称为lasttime的cookieCookie cookie = CookieUtils.getCookieByName(cookies, "lasttime");// 处理当前时间String currentTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());if (cookie==null) {// 第一次访问cookie = new Cookie("lasttime", currentTime);// 设置cookie的有效时间 1小时cookie.setMaxAge(60*60);// 向浏览器回写cookieresponse.addCookie(cookie);// 输出一句话response.getWriter().write("欢迎,第一次访问!");} else {// 不是第一次访问,取cookie中的值String lastTime = cookie.getValue();// 输出一句话response.getWriter().write("欢迎,上次访问时间为: " + lastTime + ", 下次早点来啊!");// 设置cookie的有效时间 1小时cookie.setMaxAge(60*60);// 将cookie的值设置为当前时间(记录这一次的时间)cookie.setValue(currentTime);// 向浏览器回写cookieresponse.addCookie(cookie);}

void setPath(String uri) -- 设置Cookie的有效路径

* 第一次访问的时候,/lasttime的默认的有效路径是/day11* 访问demo2.jsp http://localhost/day11/pages/demo2.jsp 如果访问的是/day11/下的任何资源,都会携带cookie的数据!* 第二次访问的时候,/web/lasttime,默认的有效路径是/day11/web * 访问demo2.jsp http://localhost/day11/pages/demo2.jsp ,不会携带cookie的数据!* 如果访问的是 http://localhost/day11/web/pages/demo2.jsp ,携带cookie的数据!

有效路径决定什么事情呢?

访问项目中其他资源时,是否携带cookie!!

cookie.setPath("/personal");// 设置cookie的有效路径,那么访问/personal下(personal项目)的任何资源,都会携带cookie的数据!这就是设置有效路径的作用!!

操作Cookie对象的方法

response.void addCookie(Cookie cookie)    -- 向浏览器回写cookie对象request Cookie[] getCookies()    -- 获取浏览器发送过来的Cookie,返回的数组

 

转载于:https://www.cnblogs.com/yadongliang/p/6208373.html

你可能感兴趣的文章
将数据库数据用Excel导出主要有3种方法
查看>>
jquery.uploadify+spring mvc实现上传图片
查看>>
关于Delphi的子类化控件消息淫荡法则之一
查看>>
UWP 手绘视频创作工具技术分享系列 - 全新的 UWP 来画视频
查看>>
《C#编程风格》还记得多少
查看>>
XML数据岛(XML Data Island)(只适用于ie)
查看>>
nginx 编译参数详解
查看>>
nginx模块nginx_upstream_check_module来检查后端服务器的健康情况
查看>>
bootstrap-内联文本元素-被删除的文本
查看>>
Orange Business Services 助力汽车制造商宝沃构建数字化基础架构
查看>>
bootstrap-进度条
查看>>
让KVM虚拟机支持console功能
查看>>
SELECT查询结果排序
查看>>
直击环球资源电子展:把“巨幕影院”戴在眼前是什么体验
查看>>
Spring框架入门
查看>>
MySQL简单安全的十个设置方法
查看>>
TL-R473P-AC【搭配面板式AP组网设置方法】
查看>>
CentOS 6.7下安装配置msmtp+mutt发送邮件
查看>>
异构环境文件服务器配置
查看>>
linux增加网段的方法route-eth0
查看>>