Session服务端会话追踪

news2025/2/24 3:33:20

1. Session基本使用

将数据(cookie)保存在客户端不安全,因为客户端在不停的进行着网络传输,所以把数据存储在服务端。
存储的对象就是session,例如AServlet往session中存数据,BServlet往session中读数据。

在这里插入图片描述
在这里插入图片描述

创建demo1用来存储数据,demo2用来读数据

@WebServlet("/demo1")
public class SessionDemo1 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //存储到Session中
        //1. 获取Session对象
        HttpSession session = request.getSession();
        System.out.println(session);
        //2. 存储数据
        session.setAttribute("username","zs");
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doGet(request, response);
    }
}
@WebServlet("/demo2")
public class SessionDemo2 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //获取数据,从session中

        //1. 获取Session对象
        HttpSession session = request.getSession();
        System.out.println(session);
        
        //2. 获取数据
        Object username = session.getAttribute("username");
        System.out.println(username);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doGet(request, response);
    }
}

2. Session原理及细节

怎么保证两次获取的session是一个
并且不同的会话都要获取session,是否是同一个session(并不是)
所以怎么保证同一会话获取的session是同一个,引出相关原理

在这里插入图片描述

demo1来获取session时,这个session是有一个唯一标识的,例如:id=10,这是Tomcat要给客户端浏览器做出响应,如果使用session,Tomcat会自动把id当做cookie,发送个客户端浏览器;
响应头是set-cookie:JSESSION=10,从而浏览器解析并存入内存中;然后该会话下一次请求时,会携带该cookie信息访问demo2,设置请求头cookie-JSESSION=10,demo2就会内存中找是否有id=10的session

在这里插入图片描述

所以这就是为什么其他会话无法访问另一个会话的session

在这里插入图片描述

2. Session使用细节

2.1 Session 钝化、活化

注意:再次启动时,session文件是会被删除的,等服务器关闭之后,又会访问硬盘中,对象序列化和反序列化(Tomcat内部自动实现)

当关闭浏览器,再次访问时,id值会变化,此时已经时两次会话了

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

纯 CSS 实现几个 Loading 效果

1. 平滑加载 <div class"progress-1"></div>.progress-1 {width:120px;height:20px;background:linear-gradient(#000 0 0) 0/0% no-repeat#ddd;animation:p1 2s infinite linear; } keyframes p1 {100% {background-size:100%} }linear-gradient(#000 0…

11.java程序员必知必会类库之word处理库

前言 正常业务中&#xff0c;可能涉及到和合作方签约电子合同&#xff0c;此时&#xff0c;我们需要先设计合同模板&#xff0c;维护固定内容&#xff0c;将可变的内容通过占位符替代&#xff0c;等签章的时候&#xff0c;生成pdf,然后可以根据设计的合同章的坐标&#xff0c;…

家庭私人影院 - Windows搭建Emby媒体库服务器并远程访问 「无公网IP」

文章目录 1.前言2. Emby网站搭建2.1. Emby下载和安装2.2 Emby网页测试 3. 本地网页发布3.1 注册并安装cpolar内网穿透3.2 Cpolar云端设置3.3 Cpolar内网穿透本地设置 4.公网访问测试5.结语 1.前言 在现代五花八门的网络应用场景中&#xff0c;观看视频绝对是主力应用场景之一&…

第十章_Redis集群(cluster)

是什么 定义 由于数据量过大&#xff0c;单个Master复制集难以承担&#xff0c;因此需要对多个复制集进行集群&#xff0c;形成水平扩展每个复制集只负责存储整个数据集的一部分&#xff0c;这就是Redis的集群&#xff0c;其作用是提供在多个Redis节点间共享数据的程序集。 官…

cad怎么转换成pdf格式,3个方法快速搞定

cad怎么转换成pdf格式&#xff1f;首先我们来了解一下CAD是什么。CAD是一种计算机辅助设计软件&#xff0c;其文件格式为DWG&#xff08;Drawing&#xff09;和DXF&#xff08;Drawing Exchange Format&#xff09;。DWG是CAD程序的本地文件格式&#xff0c;用于存储2D和3D图形…

【LLM】LLaMA简介:一个650亿参数的基础大型语言模型

LLaMA简介&#xff1a;一个650亿参数的基础大型语言模型 PaperSetup其他资料 作为 Meta 对开放科学承诺的一部分&#xff0c;今天我们将公开发布 LLaMA (大型语言模型 Meta AI) &#xff0c;这是一个最先进的大型语言基础模型&#xff0c;旨在帮助研究人员推进他们在人工智能这…

刘宇:如何打造快、稳、易、专的多元数据库运行平台

导语 4月8日下午&#xff0c;为期两天的第十二届数据技术嘉年华&#xff08;DTC 2023&#xff09;在北京新云南皇冠假日酒店圆满落下帷幕。大会以“开源融合数字化——引领数据技术发展&#xff0c;释放数据要素价值”为主题&#xff0c;汇聚产学研各界精英到场交流。云和恩墨作…

直面GPT-4的缺陷和风险,OpenAI提出多种安全应对措施

深入研究OpenAI官方团队发布的长达99页的技术报告&#xff0c;我们发现在GPT-4光鲜亮丽功能的背后&#xff0c;还隐藏了OpenAI团队付出的的汗水和努力&#xff0c;尤其是在缓解GPT模型自身缺陷和模型安全落地方面。 报告链接&#xff1a; https://arxiv.org/abs/2303.08774 一、…

UEditorPlus v3.0.0 样式CSS变量,支持Mind代码类型,若干问题修复

UEditor是由百度开发的所见即所得的开源富文本编辑器&#xff0c;基于MIT开源协议&#xff0c;该富文本编辑器帮助不少网站开发者解决富文本编辑器的难点。 UEditorPlus 是有 ModStart 团队基于 UEditor 二次开发的富文本编辑器&#xff0c;主要做了样式的定制&#xff0c;更符…

kafka单节点快速搭建

1.搭建使用centos7主机&#xff0c;关闭防火墙和selinux服务 2.创建kafka存放目录 mkdir /etc/kafka 3.从kafka官网下载安装包 我这里下载了3.3.1版本的kafka&#xff0c;放到kafka目录中 下载地址&#xff1a;Apache Kafka 4.解压安装包并更改名称 tar -zxvf /etc/kaf…

Three.js教程:顶点索引复用顶点数据

推荐&#xff1a;将 NSDT场景编辑器 加入你3D工具链 其他工具系列&#xff1a; NSDT简石数字孪生 顶点索引复用顶点数据 通过几何体BufferGeometry的顶点索引属性BufferGeometry.index可以设置几何体顶点索引数据&#xff0c;如果你有WebGL基础很容易理解顶点索引的概念&#…

如何建立Linux与git的连接?

文章目录 建立连接三板斧&#xff1a; 本文以Xshell为案例进行与git的连接&#xff01; 建立连接三板斧&#xff1a; add , commit ,push Linux与git远程连接的方法&#xff1a; 1.设置全局的用户名和邮箱 git config – global user.name “你的用户名” git config – glo…

JMeter学习(一)工具简单介绍

一、JMeter 介绍 Apache JMeter是100%纯JAVA桌面应用程序&#xff0c;被设计为用于测试客户端/服务端结构的软件(例如web应用程序)。它可以用来测试静态和动态资源的性能&#xff0c;例如&#xff1a;静态文件&#xff0c;Java Servlet,CGI Scripts,Java Object,数据库和FTP服务…

gpt国内怎么用-gpt国内版免费下载使用

gpt免费使用 GPT (Generative Pre-trained Transformer) 是一种非常强大的语言模型&#xff0c;它是由 OpenAI 开发的&#xff0c;用于自然语言处理和生成。GPT 可以生成高质量、流畅、自然的文本&#xff0c;帮助用户实现更加高效的写作和沟通。现在&#xff0c;GPT 免费使用…

Cookie客户端会话技术

1. Cookie基本使用 过程&#xff1a; 当浏览器发出请求1给服务器端A时&#xff0c;A Servlet就会创建一个cookie对象数据&#xff0c;A在做响应时&#xff0c;就会发送给浏览器&#xff0c;浏览器就把cookie保存在内存之中&#xff1b; 当浏览器在同一次会话中&#xff0c;再次…

Spring第三方资源配置管理

Spring第三方资源配置管理 1. 管理DataSource连接池对象1.1 管理Druid连接池【重点】1.2 管理c3p0连接池 2. 加载properties属性文件【重点】2.1 基本用法2.2 配置不加载系统属性2.3 加载properties文件写法 说明&#xff1a;以管理DataSource连接池对象为例讲解第三方资源配置…

RocketMQ 5.1 版本 NameServer 路由管理

文章目录 1. 路由管理核心组件介绍2. RouteInfoManager 路由表3. 路由管理3.1 注册 Broker3.2 注销 Broker3.3 拼凑 TopicRouteData 此文章基于 RocketMQ 5.1 版本进行分析&#xff0c;与 4.x 版本相比此文章分析的部分源码有很大的区别 1. 路由管理核心组件介绍 路由管理是指…

又一次503 service unavailable处理

出现了&#xff1a;503 service unavailable 1&#xff09;查看系统日志 通过事件查看器&#xff0c;查看iis的日志,如下&#xff1a; 在错误信息中提示是 应用程序池提供服务的进程中出现错误。 其他警告也可通过日志目录查看 C:\inetpub\ 出现上述问题的可能是&#xf…

树形结构——JAVA实现

1、树定义和基本术语 节点 package com.young.tree;/*** <p>* Title:树节点&#xff1a;二叉链表结构* </p>** Author: yangyongbing* Date: 2023-04-18 13:25* version: v1.0*/ public class Node<T> {public Node<T> lChild;private T data;public…

CASP15 蛋白质结构域 Domain 的定义和分类

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://blog.csdn.net/caroline_wendy/article/details/130379447 在CASP中&#xff0c;蛋白质结构域(Domain)的类别&#xff0c;包括 FM、FM/TBM、TBM-easy、TBM-hard、not evaluated 等5个类…