前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >javaweb cookie基本操作 以及过期时间设置无效问题解决

javaweb cookie基本操作 以及过期时间设置无效问题解决

作者头像
kirin
发布于 2021-03-23 03:17:31
发布于 2021-03-23 03:17:31
2.5K0
举报
文章被收录于专栏:Kirin博客Kirin博客

关于cookie设置过期无效的问题: 经过cookie.getMaxAge()获取的值,显示出来永远是-1. 但实际的值并不是-1; 可以通过关闭浏览器测试,cookie还在; 或者设置cookie时间为10,等10秒时间之后,cookie会被删除; 并不是网上说的要设置 path, domin; 你只要知道:你设置的是对的,不过除了key-value,其余的参数都不可读就行;

cookie的基础知识 /** * cookie 是服务器 存储数据到 浏览器 的一种技术,用于跟踪客户状态。比如证明客户身份: 是否是第一次访问,是否已经登录等 * * cookie流程: * 1.客户端首次访问服务器,服务端会现在客户端存留该客户的相关信息的cookie; * 2.以后客户每次访问服务器时,都会在HTTP请求中包含cookie数据,服务器解析cookie,就能得到客户的信息; * * cookie操作: * 服务器 * 1.在HTTP响应结果中添加Cookie数据。 * Cookie theCookie = new Cookie(“username”,”Tom”); * response.addCoolie( theCookie ); * 2.解析HTTP请求中的Cookie数据。 * Cookie cookies[] = response.getCookies(); * for( int i=0; i<cookies.length; i++ ){ * out.println(“Cookie key: “+cookie[i].getName() ); * out.println(“Cookie value: “+cookie[i].getValue() ); * } * * 浏览器(自动操作) * 1.如果响应体中携带cookies,那么解析HTTP响应结果中的Cookie数据,并存到本地磁盘。 * 2.如果本地磁盘中存有cookies,将cookie中保存的数据全部读取并添加到HTTP请求中。 * * cookie有效期设置 * Servlet可以通过Cookie类的getMaxAge()方法获取Cookie的有效期; * Servlet可以通过设置Cookie类的setMaxAge( int expiry ); * * //expiry默认值为 -1; * 1.如果expiry大于0,则保存有效期为expire时间长度,单位毫秒; * 2.如果expiry等于0,则指示浏览器删除当前cookie; * 3.如果expiry小于0,则指示浏览器不保存该cookie到硬盘,就保存在内存中,浏览器关闭就消失; * * 关于Cookie是否是同一条判断标准 * 可以理解为: 如果存在同一个key,那么后一条覆盖前一条; value被覆盖,保存方式以及过期时间也被覆盖; * */ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35

cookie案例代码 代码: protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

response.setContentType(“text/html;charset=utf-8”); PrintWriter out = response.getWriter(); //获取HTTP请求中的所有cookies Cookie cookies[] = request.getCookies(); if( cookies == null ) {

out.println(“首次访问,没有cookie”); }else { for( int i=0; i<cookies.length; i++ ) {

Cookie cookie = cookies[i]; out.println( “<br>Cookie name:”+cookie.getName() ); out.println( “<br>Cookie value:”+cookie.getValue() ); out.println( “<br>Max Age: “+cookie.getMaxAge()+”<br>” ); //修改cookie if( cookie.getValue().equals(“cookieValue2”) ) { cookie.setValue(“cookieValue-1”); } //删除cookie if( cookie.getValue().equals(“cookieValue4”) ) {

//cookie.setPath(“/”);//设置成跟写入cookies一样的 cookie.setMaxAge(0); } //cookie.setMaxAge(); //cookie.setPath(request.getContextPath()); //response.addCookie(cookie); } out.println(“第”+count+”访问”); }

//向浏览器端编写一个cookie Cookie cookie = new Cookie( “cookieName”+count,”cookieValue”+count ); //cookie.setPath(request.getContextPath()); cookie.setMaxAge(10); response.addCookie(cookie);

count++; out.println(count); //out.println(request.getContextPath()+”/”); } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 Domain, Path的设置 cookie读取与设置的基本原理: 1. 先匹配 响应头中的设置的 domain, 一般就是域名 2. 在匹配 path,默认为 “/应用名字/”

1) 同一个tomcat下多个webapp共享cookie: 此时:默认的Domain是一样的,所以不需要设置; path不一样,那么就强制设置为同一个path即可,那么久都能访问到指定的Cookie了。 2)不同服务器下的webapp共享cookie: 则强制指定domin路径; ————————————————

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/03/20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
JSP五:学习Cookie
Cookie 是服务端在 HTTP 响应中附带传给浏览器的⼀个小文本文件,⼀旦浏览器保存了某个 Cookie,在之后的请求和响应过程中,会将此 Cookie 来回传递,这样就可以通过 Cookie 这一个载体来完成客户端和服务端的数据交互。
乐心湖
2020/07/31
4130
B/S 结构系统的 缓存机制(Cookie) 以及基于 cookie 机制实现 oa 十天免登录的功能
Cookie 并不是它的原意“甜饼”的意思, 而是一个保存在客户机中的简单的文本文件, 这个文件与特定的 Web 文档关联在一起, 保存了该客户机访问这个Web 文档时的信息, 当客户机再次访问这个 Web 文档时这些信息可供该文档使用。由于“Cookie”具有可以保存在客户机上的神奇特性, 因此它可以帮助我们实现记录用户个人信息的功能, 而这一切都不必使用复杂的CGI等程序 。
RainbowSea
2023/04/30
5570
Web阶段:第十六章:Cookie技术
Cookie技术 a)**什么是Cookie?** 1.Cookie翻译过来是饼干的意思。 2.Cookie是由服务器通知客户端,并由客户端保存键值对的一种技术。 它的构造器是:public Cook
Java廖志伟
2022/09/28
3140
Web阶段:第十六章:Cookie技术
Cookie常用API
1. JSP中Cookie的读写 Cookie的本质是一个键值对,当浏览器访问web服务器的时候写入在客户端机器上,里面记录一些信息。Cookie还有一些附加信息,比如域名、有效时间、注释等等。 下面是一个jsp中写入读取Cookie的测试:在顶级域名中写入Cookie,在子域名中读取,目的是实现一个分布系统的单点登录。 两个jsp中读写代码如下: 写入: <% Cookie cookie = newCookie("write","cookie_write"); cookie.setComment
JavaEdge
2018/04/28
1K0
JavaWeb(二)cookie与session的应用
前言   前面讲了一堆虚的东西,所以这篇我们来介绍一下cookie和session的应用。 一、使用cookie记住用户名 1.1、思路介绍 1.2、实现代码   1)LoginServlet pac
用户1195962
2018/01/18
8750
JavaWeb(二)cookie与session的应用
Cookie和Session区别及原理
1)通过 HttpServletRequest 的 getSession() 方法获取。该方法具有两个重载的方法。
冬天vs不冷
2025/01/21
1330
Cookie和Session区别及原理
Servlet第五篇【介绍会话技术、Cookie的API、详解、应用】
什么是会话技术 基本概念: 指用户开一个浏览器,访问一个网站,只要不关闭该浏览器,不管该用户点击多少个超链接,访问多少资源,直到用户关闭浏览器,整个这个过程我们称为一次会话. ---- 为什么我们要使
Java3y
2018/03/15
8220
Servlet第五篇【介绍会话技术、Cookie的API、详解、应用】
基于Cookie+Redis+Filter实现Tomcat集群Session共享
用户登录之后,将Session Id和用户信息存储到Redis中,并添加一个Cookie,将该Session Id带到客户端。当发起其他请求之后,携带该Cookie,应用服务器获取到Session Id之后去Redis中查询是否存在,如果存在则继续进行相关业务,否则提示用户未登录。那种在Cookie中存放用户信息的方式直接Pass掉了。
用户1289394
2021/02/05
4890
基于Cookie+Redis+Filter实现Tomcat集群Session共享
Http Cookie的使用
在Java中操作Cookie通常涉及到HttpServletRequest和HttpServletResponse对象。以下是一些常见的操作Cookie的方法:
翰墨飘香
2025/02/06
730
使用cookie来记录用户登录次数,为何次数不更新
作者也是刚刚接触cookie以及session 首先贴上别人对cookie以及session的理解: cookie 和session 的区别:
萌萌哒的瓤瓤
2020/08/26
1.6K0
Cookie详解
我们知道,平时上网时都是使用无状态的HTTP协议传输出数据,这意味着客户端与服务端在数据传送完成后就会中断连接。这时我们就需要一个一直保持会话连接的机制。在session出现前,cookie就完全充当了这种角色。也就是,cookie的小量信息能帮助我们跟踪会话。一般该信息记录用户身份。
MickyInvQ
2020/09/27
1.3K0
会话技术
用户开一个浏览器,点击多个超链接,访问服务器多个web资,到最后关闭浏览器,整个过程称之为一个会话。和打电话一样,电话接收,开始会话,电话 挂断,结束会话
木瓜煲鸡脚
2019/08/22
1.4K0
Java匹马行天下之JavaWeb核心技术——JSP(续一)
我们在浏览网页的时候,经常需要向服务器提交信息,并让后台程序处理。浏览器中使用 GET 和 POST 方法向服务器提交数据。
泰斗贤若如
2019/06/19
1.1K0
Java匹马行天下之JavaWeb核心技术——JSP(续一)
Java Web servlet与cookie
在C:\Documents and Settings\Administrator\Cookies目录下面会有一个   hongten@webproject_cookie[2].txt 的文件;
Hongten
2018/09/13
5270
Web-第十天 Cookie&Session学习
当用户访问某些Web应用时,经常会显示出该用户上一次的访问时间。例如,QQ登录成功后,会显示用户上次的登录时间。通过本任务,读者将学会如何使用Cookie技术实现显示用户上次的访问时间的功能。
Java帮帮
2018/07/27
7620
Web-第十天 Cookie&Session学习
cookie和session
cookie主要完成同一会话中不同请求响应间数据传输的任务。cookie是一种消息载体,是在服务器端生成的,首次会以响应报文中传输到客户端,客户端浏览器会将cookie中的内容保存到本地磁盘上,之后再向服务器发送请求时会带着cookie,从而完成多次请求响应中的消息传输问题。
你的益达
2020/10/15
5750
cookie和session
JavaWeb11-jsp.cookie.session(2)
http协议规定 Http协议对Cookie做了一些规定,如下所示: a. 一个Cookie的大小,最大为4KB; b. 一个服务器最多向一个浏览器保存20个Cookie; c. 一个浏览器最多可以保存300个Cookie。 我们知道,浏览器将服务器发送过来的cookie保存在本地磁盘,如果cookie过多,必然会加大浏览器的压力,因此Http协议对Cookie做了以上规定。 但是,目前浏览器之间因为竞争,很多都在一定范围内违反了Http规定,例如,一个浏览器最多保存的Cookie个数超过300个。但是也不
Java帮帮
2018/03/19
1.2K0
JavaWeb11-jsp.cookie.session(2)
Cookie快速入门和记住上一次访问时间案例
1. CookieDemo1.java * 创建Cookie对象 * 发送Cookie * 获取Cookie * 设置cookie的生命周期持久化存储()
不愿意做鱼的小鲸鱼
2022/09/24
3160
Cookie快速入门和记住上一次访问时间案例
jsp文件下载模板
 浏览器与WEB服务器之间是使用HTTP协议进行通信的,当某个用户发出页面请求时,WEB服务器只是简单的进行响应,然后就关闭与该用户的连接。因此当一个请求发送到WEB服务器时,无论其是否是第一次来访,服务器都会把它当作第一次来对待,这样的不好之处可想而知。为了弥补这个缺陷,Netscape开发出了cookie这个有效的工具来保存某个用户的识别信息。cookies是一种WEB服务器通过浏览器在访问者的硬盘上存储信息的手段:Netscape Navigator使用一个名为cookies.txt本地文件保存从所有站点接收的Cookie信息;而IE浏览器把Cookie信息保存在类似于 C://windows//cookies的目录下。当用户再次访问某个站点时,服务端将要求浏览器查找并返回先前发送的Cookie信息,来识别这个用户。  jsp是通过以下语法格式来创建Cookie的
mathor
2018/10/10
4.4K0
JavaWeb——会话技术之Cookie快速入门与案例实战(详细讲解了Cookie实现原理、Cookie使用细节、Cookie的特点及作用)
会话与生活中的谈话很类似,有开始,有结束,中间过程一问一答。一次会话中包含多次请求和响应:
Winter_world
2020/09/25
7440
JavaWeb——会话技术之Cookie快速入门与案例实战(详细讲解了Cookie实现原理、Cookie使用细节、Cookie的特点及作用)
相关推荐
JSP五:学习Cookie
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档