javaweb session与cookie

news2024/10/6 12:21:28

Cookie

Cookie是本地的存储数据,是键值对

注意一定要使用resp.addCookie才能返回cookie

cookie修改

修改的话也是调用addCookie,对相同key的进行修改,作用于set-cookie响应头。

可以新建cookie,add进去,也可以在用户传过来的cookie之上进行修改。

cookie的path的作用

cookie只有其内部的path与请求url相符合时才能发送

比如这里path1就只能发送到localhost/13_cookie_session_abc/**,其他的不行,可以设置path来达到效果。

cookie的生命周期

注意cookie的默认是无限时长的,这点和session不一样

在Max-age(就是失效时间)可以看到都是session级的,也就是无线时长,浏览器关闭才消失。cookie并不存在像session那样的计时器刷新机制(那是在服务器端对于session对象才会有的),cookie是只要时间到就会在本地删掉,想要延长时间或立刻让本地删掉可以通过服务端修改max-age实现。

Session

会话

在线数据存储,将信息存储在服务器上

httpsession是一个接口,需要我们手动实现

基本用法

getSession

获取session,根据req中发过来的cookie JSESSIONID来取session,如果没有JSESSIONID或JSESSIONID所对应的session已经被销毁了(总的来说就是没找到),那就新建一个session,并且在resp中设置好cookie,返回后本地就可以加上此cookie了。

判断是否为新,id

Session底层的具体实现细节

总的来说就是本地有cookie保证可以使用之前的session,服务器根据sessionid找(getSession)相应的session,找到关于该session的数据存储,没有就新建session,响应让本地获取sessionid(cookie是自动设定的,不需要自己手动放到resp中)。

本地的JSESSIONID的cookie就是指的是sessionid,他是session级的生命周期(也就是本地可以存无限时间,浏览器关闭cookie消失)

Session销毁

1.Session超时

session可以通过web.xml或者代码

的方式存取,超时是指在n秒后没有再次进行会话就销毁session对象,如果期间进行了新的访问,就会重置timeout时间,也就是只要每一段时间用session访问一次就可以做到永不断开(浏览器不关闭的情况下,当然也可以设置

值为-1来实现无超时时间

)。

注意这个超时时间是存在服务器端的,与本地的cookie消失时间不是一个东西

2.浏览器关闭

浏览器关闭意味着cookie消除,sessionid没了,就算时间没结束也找不到相应的session了。

相关方法

Session的可见性

Sessionid一般path为工程路径,也就是一般整个工程共用一个session,应该也可以手动设置多个session吧。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/612718.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

投出去的简历石沉大海,1个月只有2个面试邀约,这正常吗?

我一介大专生,干了2年的点工,想着干这么长时间测试了,怎么也要涨薪冲击个12K了吧 去年我跟老板提了几次,好像都不怎么搭理我 今年金三银四,涨薪那边还是没着落,而我已经急不可耐了,既然你不给我…

28 # commander 的用法

node 和前端的区别 前端里面有 BOM 和 DOM,服务端没有,也没有 window服务端里面有 global 全局对象(浏览器也有 global,只不过访问属性的时候都是通过 window 来代理,没有直接访问 global,也不能直接访问 …

Oracle-Linux修改字符集

Oracle-修改字符集 连接查询字符集立即关闭数据库并终止所有用户会话开启挂载启用受限会话设置作业队列进程数为0设置 AQ 时间管理进程数为 0打开(Open)一个已经挂载(Mount)的数据库修改数据库字符集为AL32UTF8立即关闭数据库并终…

前端零基础入门,好程序员手把手教你!学会CSS语法规则!

今天来学习CSS语法规则,想要入门前端这一岗位,就必须得同时掌握有关于它的三门编程语言,分别是HTML、CSS以及javascript。这三门编程语言的语法各不相同,今天好程序员带大家来认识CSS语法规则。 想要学习一门编程语言,…

Linux4.9 Tomcat部署及优化

文章目录 计算机系统5G云计算第六章 LINUX Tomcat部署及优化一、Tomcat概述1.Tomcat核心组件2.什么是 servlet3.什么是 JSP4.Tomcat 功能组件结构5.Container 结构分析6.Tomcat 请求过程7. 配置文件 二、Tomcat 服务部署1.关闭防火墙,将安装 Tomcat 所需软件包传到/…

利用Taro打造灵活的移动App架构

最近公司的一些项目需要跨端框架,技术老大选了Taro,实践了一段时间下来,愈发觉得Taro是个好东西,所以在本篇文章中稍微介绍下。 什么是Taro? Taro(或称为Taro框架)是一种用于构建跨平台应用程…

springboot3深度学习(在更)

jar包外进行配置文件的修改 在jar包的同目录创建application.properties文件,直接在这个文件中配置对应的信息,就可以完成对应的修改,我们就可以做到不修改源代码。 例子: 测试结果为下: yml文件和properties文件都可以实现此功能&#xf…

160个CrackMe之002

这道题就很简单 有了第一道题目的支持 我们就能做 首先 我们先要下载Msvbvm50.dll Msvbvm50.dll下载_Msvbvm50.dll最新版下载[修复系统丢失文件]-下载之家 然后我们可以运行程序了 比之前那个还简单 就是输入 然后比对 报错或者成功 开始逆向分析 先去常量中进行查找 找…

初学者需要掌握的一些FPGA基础设计概念(2)

目录 1. 什么是流片 2. CLB 3. 如何解决亚稳态(Metastability) 4. 什么是可综合 5. 什么是双边沿、上升沿、下降沿 6. IOB 7. PLL 8. IP核 9. 时序分析 10. 时钟域 11. 约束文件 12. 用VERILOG实现消除一个glitch 滤掉小于1个周期glitch 滤…

什么是电压跟随器?电压跟随器有什么作用

电压跟随器是一种电路,其输出电压跟随输入电压的变化而变化。它被广泛应用于电子设备中,尤其是在信号放大和控制电路中。在本文中,我们将探讨电压跟随器的工作原理、应用以及设计。 一、电压跟随器的工作原理 电压跟随器是一种反馈电路&…

【AIGC】Photoshop AI Beta版本安装使用(永久免费)

AIGC 大爆发 Adobe近日宣布,Photoshop(测试版)应用程序发布了生成式AI绘图,这是世界上第一个创意和设计工作流程的副驾驶,为用户提供了一种神奇的新工作方式。生成式AI绘图由Adobe Firefly提供支持,Adobe的…

操作系统复习2.3.2-临界区的软件硬件实现方法

软件实现方法 思想 在进入区设置并检查一些标志来得知是否有进程已经在临界区,有则循环检查等待,无则直接进入,进程进入/离开临界区时修改标志 单标志法 通过标记进程号来实现控制只有一个进程能够进行临界区,但会出现P0进程进…

Java单元测试学习(一)

Java单元测试学习(一) 使用TestContainer和docker结合启动redis 前提 docker环境 目录结构 依赖—这里有个小插曲 配置RedisTemplate时一直报错Error creating bean with name ‘redisConnectionFactory’ defined in class path resource [org/spr…

客户回访|国产MCU测试解决方案 助力中国“芯”智造

半导体技术持续更新迭代,MCU也在与时俱进,为了更好地迎接市场未来趋势,国产MCU厂商积极布局各系列MCU产品线,开始逐渐在特定细分领域实现突破。随着应用场景的进化升级,MCU 中包含越来越多的功能模块,相应地…

Mysql进阶【1】论述索引,索引数据结构,MVCC

1. ReadView 案例,解释为什么 RR 和 RC 隔离级别下看到查询结果不一致 案例 01- 读已提交 RC 隔离级别下的可见性分析 开启两个回话,会话事务级别都是READ-COMMITED; 操作步骤 开启两个数据库会话,设置事务为提交读事务2查询id1数据&#…

zerotier使用

目标 使用zerotier进行内网穿透,使外网客户端访问内网服务器 步骤 1.1 注册 进入zerotier官网,注册 ​ 完成后进入个人中心,点击networks,选择创建网络,得到一个networkid ​ 点击id进入设置,编辑名称…

程序员——毕业年薪28w真的不可能吗?

我是一名来自湖南的普通应届毕业生。目前就职于杭州的一家电商经营的公司,做数据开发工程师,工资是20k*14薪,并且是每周三发一次工资。 在大学期间,我选择了学习计算机相关专业,但是课堂上所学的知识常常让我觉得晦涩…

仙境传说RO :ra脚本加载结构和开发语法讲解

仙境传说RO :ra脚本加载结构和开发语法讲解 大家好,我是艾西。上一篇文章中我们聊完了怎么在游戏中新建NPC,感觉还是有不少小伙伴没有太看懂原理。今天艾西给大家深度讲解一下脚本加载结构和开发语法环境文档。 我们最后都是以ra脚本为主要…

提高客户满意度的4种方式

随着技术的使用越来越多,客户体验格局已经永远改变了。长时间的等待时间和缓慢的响应不再被接受,并且对客户满意度产生巨大影响。即时满足和满足客户的高期望至关重要。 那么如何提高客户满意度呢,接下来将为您推荐五种最常见的方法&#xf…

SpringCloud Alibaba Sentinel学习

SpringCloud Alibaba Sentinel 1. Sentinel 使用 第一步、下载Sentinel的jar包&#xff0c;并且在命令行输入 java -jar sentinel-dashboard-1.8.0.jar 启动jar包 第二步、在项目中添加Sentinel依赖 <!--引入 alibaba-sentinel 场景启动器--> <dependency><g…