[java]关于会话Session

news2025/1/11 19:49:47

前言: 

客户端向服务端发请求,登陆完之后,进入到首页,如何让客户端知道它有没有登陆过呢,需要从首页里面向服务器发出异步请求,请求当前登录的用户信息,登录过就能获取得到,没登陆过获取不到。

关于会话的概念:有n多个客户端访问同一个服务器,服务器会根据访问的客户端创建一个这个客户端专属的会话对象,它能避免客户端之间的信息不会冲突,会话的作用就是用来记录客户端的行为的。比如在登录过后就会在会话里面增加一个标识存个东西,然后进入首页之后,发出异步请求时就是获取这个东西,如果有就能判断登陆过。

即:客户端向服务器发请求时,服务器会针对于当前的客户端创建一个与之相对应的会话对象, 这个会话对象是用来记录客户端行为的对象, 同一个客户端的多次请求共享同一个会话对象

实现:

通过会话对象可以记录客户端的登录状态, 在客户端登录成功时, 可以把登录成功时 的UserVO保存到会话对象里面,之后同一客户端发出的请求可以访问此会话对象, 如果里面有UserVO代表登录过, 没有则代码没有登录过,如下步骤:
 

 在登录成功时 把从数据库中查询到的UserVO保存进会话对象中

 补充:这里的“user”可以理解为map的key,可以取任何名字,取得时候会用到它,user则对应value。  HttpSession是同一个变量,不同的对象,不同客户端来访问就代表对应的客户端。

 

 进入页面便发送请求:

 

 从会话对象中获取当前登录的用户对象

 补充:这里能从session拿到Uservo是因为springmvc会自动去找到和当前客户端对应的会话对象。同时因为有多个客户端,为了保证唯一性,内部会在创建了会话对象之后会给客户端响应一个id,之后的每次请求都会带着这个id,就能找到所对应的会话对象了。同一个客户端不同的浏览器会有多个会话对象,因为这个id保存在浏览器的,换了一个浏览器后就不会带着id去访问。

测试:用if else在登录成功的时候展示不同的页面

退出登录 


退出登录时需要将会话对象里面的user删除

 

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

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

相关文章

Socket安全(二)

文章目录 1. 客户端模式2. 创建安全服务器Socket3. 配置SSLServerSocket 1. 客户端模式 大多数安全通信中,服务器需要使用适当的证书认证自己。不过客户端不需要(淘宝需要向用户证明它确实是淘宝,但我不需要向淘宝证明我自己的身份&#xff…

Skywalking9.4.0部署监控项目

1、SkyWalking简介 SkyWalking是国内开源的基于字节码注入的调用链分析以及应用监控分析工具。特点是支持多种插件,UI功能较强,接入端无代码侵入。目前使用厂商最多,版本更新较快,已成为 Apache 基金会顶级项目。 它有哪些功能呢…

WebGPU你让我等的好辛苦啊

什么是WebGPU WebGPU是一种新兴的Web标准,旨在为Web应用程序提供高性能的图形和计算功能。它是一种低级别的图形API,为开发人员提供了对现代GPU的直接访问,以实现更高效的图形渲染和通用计算。 WebGPU的设计目标是提供与现代图形API&#x…

文心一言 VS 讯飞星火 VS chatgpt (26)-- 算法导论5.1 1题

一、证明:假设在过程 HIRE-ASSISTANT 的第 4 行中,我们总能决定哪一个应聘者最佳。则意味着我们知道应聘者排名的全部次序。 文心一言: 证明: 假设在过程 HIRE-ASSISTANT 的第 4 行中,我们总能决定哪一个应聘者最佳。则意味着我们知道应聘…

png图片压缩后黑底问题解决

问题背景 使用thumbnail对图片进行压缩,偶然会发现对png图片出现黑底的情况如下: 压缩前 压缩后 问题解决 对网上搜到的解决方法主要有两种: 1.指定png输出 JAVA - Get black background when uploading PNG image - Stack Overflow 一…

大数据好找工作么?前景如何

大数据好不好找工作不是一概而论的,要根据你个人的学历情况,掌握技能程度,所在城市招聘需求,甚至是你的面试能力和简历是否突出优势有关。 但是毋庸置疑的是,大数据目前的发展前景还是相当优秀的。 我们知道&#xf…

什么是测试开发,聊聊我对测试开发的看法

目录 前 还没来阿里之前,我对测开的看法 多数人眼中的测试开发 来了阿里之后,对测开看法有了转变 阿里的测开是干嘛的 测试平台的好处和不足 我对测试平台的看法 测试平台是测开必需品吗? 实际项目中用不到测试平台,有必要…

GIT | 日常命令查阅表

最近公司代码管控比较乱,有天就利用分支进行了代码梳理,当时就遇到一些困惑,抽空就把git 再学了一下。 以前我是用git命令的,但是敲命令对我来说还是有点麻烦(主要是git 功力不够),看到有同事用…

jmeter性能测试技巧(欢迎提问,不定时更新)

问题1 如何在大并发测试下,让登录或者后续接口只执行一次? 分析 2023Jmeter性能测试项目实战教程,十年测试大佬手把手教你做性能!_哔哩哔哩_bilibili2023Jmeter性能测试项目实战教程,十年测试大佬手把手教你做性能&…

SQL综合案例之电商漏斗转化分析,pv,uv及

漏斗模型示例: 不同的业务场景有不同的业务路径 : 有先后顺序, 事件可以出现多次 注册转化漏斗 : 启动APP --> APP注册页面--->注册结果 -->提交订单-->支付成功 搜购转化漏斗 : 搜索商品--> 点击商品--->加入购物车-->提交订单-->支付成功…

Scrum中可以有测试人员吗?

作者 | Federico Toledo Scrum 是将质量融入产品开发和创建敏捷团队的宝贵框架。测试人员如何适应这一切?让我们深入研究这篇文章。 毫无疑问,Scrum是在任何环境中为团队寻求业务敏捷性,以及应对不同复杂挑战的最重要工具之一。 正如《福布斯…

在pycharm里安装pytorch环境-GPU版

1、安装Anaconda 在官网下载安装:https://www.anaconda.com/download 2、安装pycharm https://www.jetbrains.com/pycharm/download/#sectionwindows 使用社区版即可。 3、检查conda环境 按winr,输入cmd回车打开命令窗 在命令窗内输入conda 环境无问…

小学课后兴趣班选课平台的设计与实现(ASP.NET,SQLServer)

系统功能模块设计 中小学课后兴趣班选课平台包括前台功能模块和后台功能模块:前台功能模块是给会员使用的功能模块,在前台功能模块中会员可以实现在线注册,登录,查看发布的新闻资讯信息,查看教师,在线留言&…

软件测试的 20 个误区

软件测试中常遇到的 20 个误区,争取能给想从事软件测试的小伙伴一点启发。 1、测试人员不需要了解软件开发知识 抛开自动化测试,测试开发等,这些是必须要学习软件开发知识。功能测试和接口测试等还是需要软件开发知识的,例如新建…

电动汽车、车载充电器及其过流保护电路介绍

摘要:本文通过比亚迪公司的专利了解电动汽车、车载充电器及其过流保护电路,其中,车载充电器包括AC/DC变换器和DC/DC变换器,AC/DC变换器和DC/DC变换器均采用光耦驱动的SiC开关管,过流保护电路包括:电流检测单…

ChatGPT与网络安全

文章目录 一、“AI用于攻击”二、“AI用于安全(防御)”三、“AI的防御”四、“AI被攻击” ChatGPT作为基于生成式预训练模型(GPT)的聊天机器人,其核心技术是自然语言处理(NLP)。随着NLP技术的不…

OS实战笔记(9)-- 构建二级引导器

Grub内核映像格式 Grub工作的时候,需要一个内核映像文件,其中包括了二级引导器模块、内核模块、图片和字库等。这些不同的文件都被放到了一个映像文件中,为了Grub能够正常加载,需要一个预先定义好的格式,以便Grub能解析…

代码实现 ResNet 详解

零、ResNet的介绍 ResNet代码(含详细的使用说明): https://github.com/GarsonWw/resnet-garson.git 当谈到深度学习中的卷积神经网络时,ResNet(Residual Network)是一个备受赞誉且引人注目的架构。ResNet…

最全的mysql编码集问题排查

用navicate导入一个json文件数据的时候,发现中文有一些是乱码的,查了很多资料,发现mysql、navicate编码集都没问题,包括导入流程,那是什么原因呢?想着难道是电脑的编码集影响了?于是调整以后&am…

【C语言】结构体——我就是秩序的创建者!(结构体数组、结构体指针、嵌套、匿名、字面量、伸缩型数组、链式结构)

一、结构体基础1.1 声明和定义1.1 初始化和赋值1.3 访问结构体成员 二、结构体数组2.1 定义和初始化2.2 访问 三、结构体的嵌套五、指向结构体的指针六、向函数传递结构体6.1 只传递结构体成员6.2 传递结构体指针6.3 传递结构体 七、结构体的其他特性——不容小觑7.1 结构体的大…