当前位置: 首页 > news >正文

web实操9——session

概念

数据保存在服务器HttpSession对象里。
在这里插入图片描述
session也是域对象,有setAttribute和getAttribute方法

快速入门

在这里插入图片描述

代码

获取session和塞入数据:
在这里插入图片描述
获取session获取数据:
在这里插入图片描述
请求存储:
在这里插入图片描述
请求获取:
在这里插入图片描述
数据正常打印:
在这里插入图片描述

结论

由于浏览器和服务器都没用关闭,所以上面相当于一次会话的两次请求。
这时候把浏览器关闭,再直接访问demo2:
输出null,说明范围确实是在一次会话的:
一次会话中才能用session来共享数据。
在这里插入图片描述

原理分析

竟然共享数据,那么两次请求获取的肯定是同一个session。
那服务器是怎么确保这两个session是同一个的?
在这里插入图片描述
!!!session是依赖于cookie的,cookie是通过请求头和响应头来实现的。
1)第一次获取session,没有cookie会在内存中创建一个新的session对象,并且这个session对象有一个唯一的id值
2)给浏览器做响应的时候会发送一个响应头set-cookie:值是JSSONID=上面的session的Id。
3)浏览器收到cookie头会把cookie信息存储到浏览器内部。
4)下一次再访问当前项目里的其他资源的时候会携带这个cookie头,通过请求头cookie,值:JSSONID=session的Id值。
5)服务器自动去获取这个cookie信息,然后根据cookie信息去查找内存中有没有一个id为带过来的id的session对象。
6)找到了,getSession方法就找到了并返回。

通过抓包看

http://www.lryc.cn/news/514708.html

相关文章:

  • OFDM学习-(二)长短序列和PPDU整体数据处理流程
  • .NET周刊【12月第4期 2024-12-22】
  • Conda 安装 Jupyter Notebook
  • 鸿蒙开发:实现键值数据库存储
  • WebGL 实践(一)开发环境搭建
  • 在线机考|2024华为实习秋招春招编程题(最新)——第3题_PCB印刷电路板布线_300分(八)
  • Spring源码分析之事件机制——观察者模式(三)
  • C#实现画图,及实现图像运动,C#中GDI+图形图像技术(Graphics类、Pen类、Brush类)C#之快速入门GDI+绘图 C#实现快速画图功能
  • 【51单片机零基础-chapter6:LCD1602调试工具】
  • 算法题(24):只出现一次的数字(二)
  • 趣味编程:心形曲线
  • C# 设计模式(结构型模式):享元模式
  • 计算机毕业设计Django+Tensorflow音乐推荐系统 音乐可视化 卷积神经网络CNN LSTM音乐情感分析 机器学习 深度学习 Flask
  • mysql 死锁案例及简略分析
  • 第四届计算机、人工智能与控制工程
  • RIP配置实验
  • C# 整型、浮点型 数值范围原理分析
  • Adobe Acrobat Pro DC 2023 下载安装教程,附详细图文
  • stable diffusion秋叶启动器安装roop插件
  • 7-14 统计工龄
  • OLED的显示
  • 本地测试文件解析
  • Elasticsearch JavaRestClient版
  • ubuntu 使用s3fs配置自动挂载对象存储
  • SQL字符串截取函数——Left()、Right()、Substring()用法详解
  • 关系分类(RC)模型和关系抽取(RE)模型的区别
  • 什么是索引
  • OJ随机链表的复制题目分析
  • UE5材质节点Distance
  • OSPF - SPF算法简述