Session会话与请求域的区别

news2024/11/23 19:16:04

session会话和请求域(也称为request域)都是用于存储和管理用户特定信息的重要概念,但它们在作用范围和生命周期上有显著的不同。

请求域 (Request Domain)

  1. 作用范围:请求域是面向单次请求的。每次HTTP请求都会创建一个新的request对象,所有的请求参数以及在处理请求过程中产生的数据都可以存储在这个域中。

  2. 生命周期request域的生命周期非常短暂,仅在当前请求的处理过程中有效。一旦请求结束,request对象及其域中的数据就会被销毁。

  3. 数据持久性:存储在request域中的数据仅在当前请求周期内可用。这意味着如果需要在后续请求中访问这些数据,必须通过某种方式(如sessioncookie、数据库等)将数据持久化。

  4. 存储位置request域的数据存储在服务器端,但仅在当前请求的上下文中可见。

   /*
     void setAttribute(String var1, Object var2);
    注意:存取时key值要相同,key-value键值 value 可以是任意类型数据
     */
    // 存入请求域
    req.setAttribute("key","value");
    // 取出数据
    req.getAttribute("key");
演示

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

效果

在这里插入图片描述

Session会话

  1. 作用范围session会话是面向用户的,每个用户在与Web应用程序交互时都有一个独立的session。这意味着对于不同的用户,即使他们同时访问同一页面,他们也有各自独立的session数据。

  2. 生命周期session的生命周期通常比一次请求要长得多。它通常从用户第一次访问某个Web应用开始,直到用户关闭浏览器或session超时为止(默认情况下,session的超时时间为30分钟,但可以通过配置文件更改)。在某些情况下,也可以通过编程方式手动销毁session

// 调用方法销毁
session.invalidate();//手工销毁
// 浏览器关闭,原有的Session会失效,相对于是没了
  1. 数据持久性:由于session的生命周期较长,存储在session中的数据可以跨多个请求持久存在。这对于维护用户登录状态、购物车信息等长期有效的数据非常有用。

  2. 存储位置session数据通常存储在服务器端,以防止数据丢失或被篡改。

  //获取Session对象
HttpSession session=request.getSession();
System.out.println("Id:"+session.getId());//唯一标记,
session.setAttribute("key",value);//以键值对形式存储在session作用域中。
session.getAttribute("key");//通过String类型的key访问Object类型的value
演示

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

效果

在这里插入图片描述

总结

  • session适用于需要跨多个请求持久保存的数据,如用户身份验证信息。
  • request域适用于只在单个请求周期内需要的数据,如表单提交的数据或临时的处理结果。

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

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

相关文章

Vue报错:Component name “xxx” should always be multi-word vue/multi-word-component

问题:搭建脚手架时报错,具体错误如下: ERROR in [eslint] E:\personalProject\VueProjects\vueproject2\src\components\Student.vue10:14 error Component name "Student" should always be multi-word vue/multi-word-compon…

找不到xinput1_3.dll怎么办?几种靠谱的修复xinput1_3.dll的方法

找不到xinput1_3.dll怎么办?如果你不知道,那么你就详细的看看本文吧,今天我们会给大家详细的讲解找不到xinput1_3.dll这个情况,以及分析xinput1_3.dll这个文件,只要我们熟悉这个文件,那么要搞定修复还是比较…

如何使用Hugging Face Transformers为情绪分析微调BERT?

情绪分析指用于判断文本中表达的情绪的自然语言处理(NLP)技术,它是客户反馈评估、社交媒体情绪跟踪和市场研究等现代应用背后的一项重要技术。情绪可以帮助企业及其他组织评估公众意见、提供改进的客户服务,并丰富产品或服务。 BERT的全称是来自Transfo…

【UE5.3】笔记5-蓝图类

什么是蓝图类:其实就是C类,只不过是UE封装好的且可以直接拖出来可视化使用。 如何创建蓝图类?蓝图类有哪些? 蓝图类分为基于关卡的,基于Actor的,基于组件Component的。 基于关卡的蓝图类 一个关卡只能有…

Jupyter Notebook 说明 和 安装教程【WIN MAC】

一、Jupyter Notebook 简介(来源百度百科) Jupyter Notebook(此前被称为 Python notebook)是一个交互式笔记本,支持运行40多种编程语言。 Jupyter Notebook 的本质是一个Web应用程序,便于创建和共享程序文…

综合管廊挂轨巡检机器人:安全高效管理的新力量

综合管廊、电力管廊等作为承载着各类电缆和管线的重要通道,管廊的安全和可靠性对城市的运行至关重要。传统人工巡检效率低、劳动强度大,且可能存在巡检不及时、不准确等问题。难以满足日益复杂和庞大的管廊系统的监控需求。为了解决这些问题,…

物理服务器会不会被DDOS攻击?

物理服务器同样可能遭受分布式拒绝服务(DDoS)攻击。DDoS攻击的目的是通过大量的请求淹没目标服务器或网络,使其无法处理合法用户的请求,从而导致服务不可用。这种攻击并不区分服务器是物理的还是虚拟的,只要服务器连接…

将idea项目代码部署到Linux系统中

目录 1. 将idea与虚拟机建立连接 2. 设置上传到虚拟机的目录 3.上传项目代码 1. 将idea与虚拟机建立连接 打开idea要上传的项目,找到Tools -> Development -> Configuration 设置一个连接的名称,我这里设置为centos 将Type设置为SFTP,点击SSH configuration 开始配…

ComfyUI中运行Stable Audio Open,实现背景音乐、音效自由

🧨背景 stability在一个月之前默默的发布了Stable Audio Open 1.0的音频音效生成模型,不过好像影响力一般,也没有太多文章分享测试,而今天看comfyui作者的一篇介绍文档,他已经让comfyui默认支持了这个模型。 原开源地…

马面裙的故事:汉服如何通过直播电商实现产业跃迁

【潮汐商业评论/原创】 波澜壮阔的千里江山在马面裙的百褶上展开,织金花纹在女性的步伐之间若隐若现,从明清到现代,如今马面裙又流行了回来,成为女性的流行单品,2024年春节期间,马面裙更是成为华夏女孩们的…

RTDETR更换优化器——Lion

RTDETR更换Lion优化器 论文:https://arxiv.org/abs/2302.06675 代码:https://github.com/google/automl/blob/master/lion/lion_pytorch.py 简介: Lion优化器是一种基于梯度的优化算法,旨在提高梯度下降法在深度学习中的优化效果…

ACC:Automatic ECN Tuning for High-Speed Datacenter Networks 相关知识点介绍(一)

目录 ACC(Adaptive Congestion Control) 总结 结合 ACC 和 ECN ECN ECN(Explicit Congestion Notification) 静态 ECN 动态 ECN 对比 总结 FCT——flow completion time 具体解释 小鼠流和大象流 小鼠流(…

【JavaEE进阶】Spring AOP使用篇

目录 1.AOP概述 2.SpringAOP快速入门 2.1 引入AOP依赖 2.2 编写AOP程序 3. Spring AOP详解 3.1 Spring AOP 核心概念 3.1.1切点(Pointcut) 3.1.2 连接点 (Join Point) 3.1.3 通知(Advice) 3.1.4 切面(Aspect) 3.2 通知类型 3.3PointCut 3.4 切面优先级 3.5 切点表…

【Unity设计模式】使用对象池

前言 最近在学习Unity游戏设计模式,看到两本比较适合入门的书,一本是unity官方的 《Level up your programming with game programming patterns》 ,另一本是 《游戏编程模式》 这两本书介绍了大部分会使用到的设计模式,因此很值得学习 本…

NSIS 打包发布 exe 安装包之 配置文件参数说明

一、打包exe教程 详见上期博客:visual studio打包QT工程发布exe安装包 二、参数说明 1、程序图标显示无效问题 在nsi配置文件中找到以下行,分别在尾部追加 “” “$INSTDIR\logo-ico.ico” , logo-ico.ico为程序图标名称,Setup…

Flutter学习目录

学习Dart语言 官网:https://dart.cn/ 快速入门:Dart 语言开发文档(dart.cn/guides) 学习Flutter Flutter生命周期 点击跳转Flutter更换主题 点击跳转StatelessWidget和StatefulWidget的区别 点击跳转学习Flutter中新的Navigato…

基于Java的汽车租赁系统【附源码】

论文题目 设计(论文)综述(1000字) 当今社会,汽车租赁已成为一种受欢迎的出行方式。本文旨在探讨汽车租赁行业的发展趋势、市场规模及其对环境的影响。目前,汽车租赁行业正在经历着快速的发展。随着经济的发…

昇思25天学习打卡营第9天|使用静态图加速

一、简介: AI编译框架分为两种运行模式,分别是动态图模式以及静态图模式。MindSpore默认情况下是以动态图模式运行,但也支持手工切换为静态图模式。两种运行模式的详细介绍如下: (1)动态图: …

维基百科:12种维基百科推广技术让你成为行业专家

维基百科(Wikipedia)作为全球最大的免费网络百科全书,已经成为人们获取知识的重要源泉之一。对于想要在特定领域成为行业专家的人来说,利用维基百科进行推广是一种非常有效的方式。本文将介绍12种维基百科推广技术,帮助…

奔驰汽车的通信如此固若金汤的原因

随着摄像系统、距离控制、航线保持等功能以及制动辅助系统、制动力分配系统、车身侧倾干预与缓解系统等功能的飞速发展,汽车的系统功能之间已经不再独立,而是呈现互相合作的关系,各功能之间的无缝集成更是各大整车厂追求的目标。俗话说,外练筋骨皮,内练一口气,有了各式安…