【SpringMVC】常用注解:@SessionAttributes

news/2025/3/18 9:25:03/

1.作用

用于多次执行控制器方法间的参数共享

2.属性

value:用于指定存入的属性名称

type:用于指定存入的数据类型

3.示例

先写JSP代码

<a href="demo1/putMethod">存入 SessionAttribute</a><br><a href="demo1/getMethod">取出 SessionAttribute</a><br><a href="demo1/cleanMethod">清除 SessionAttribute</a>

编写控制器代码

@Controller@RequestMapping("demo1")@SessionAttributes(value ={"username","password","age"})public class HelloController {@RequestMapping("putMethod")public String putMethod(Model model){model.addAttribute("username", "泰斯特");model.addAttribute("password","123456");model.addAttribute("age","admin");return "success";}@RequestMapping("getMethod")public String getMethod(ModelMap model){System.out.println(model.get("username")+";"+model.get("password")+";"+model.get("age"));return "success";}@RequestMapping("cleanMethod")public String cleanMethod(SessionStatus sessionStatus){sessionStatus.setComplete();return "success";}
}

通过Model对象的addAttribute方法来向作用域里存储数据。

这里听到作用域可能会有点蒙,下面来讲一下

Model 对象的 addAttribute 方法存储数据的作用域需结合 @SessionAttributes 注解分析:

默认请求作用域:正常情况下,Model 存储的数据会放入 请求作用域,仅在当前请求处理周期内有效。

会话作用域(因 @SessionAttributes:也叫session作用域,由于类上声明了 @SessionAttributes(value = {"username", "password", "age"}),这三个属性会额外存入 会话作用域。会话作用域的数据会跨请求保留,直到会话结束(如浏览器关闭或主动清除会话)。

因此,代码中通过 Model 存储的 usernamepasswordage 最终会存在 会话作用域 中,而若未被 @SessionAttributes 声明的属性,仍默认存于请求作用域。

然后可以用get方法从session作用域中取数据,也可以用SessionStatus类的方法去删除session作用域中的数据。


http://www.ppmy.cn/news/1580029.html

相关文章

Python 鼠标轨迹算法 - 防止游戏检测

一.简介 鼠标轨迹算法是一种模拟人类鼠标操作的程序&#xff0c;它能够模拟出自然而真实的鼠标移动路径。 鼠标轨迹算法的底层实现采用C/C语言&#xff0c;原因在于C/C提供了高性能的执行能力和直接访问操作系统底层资源的能力。 鼠标轨迹算法具有以下优势&#xff1a; 模拟…

前端(vue)学习笔记(CLASS 4):组件组成部分与通信

1、组件的三大组成部分&#xff08;结构/样式/逻辑&#xff09; 注意点&#xff1a; 1、结构只能有一个根元素 2、全局样式&#xff08;默认&#xff09;&#xff0c;影响所有组件&#xff1b;局部样式&#xff0c;scoped下样式&#xff0c;只作用于当前组件 3、el根实例独…

华为hcia——Datacom实验指南——TCP传输原理和数据段格式

什么是TCP TCP是一种可靠的端到端的传输层协议&#xff0c;仅应用于单波通信。 采用TCP协议作为传输方式的应用层服务&#xff0c;再进行数据传输前&#xff0c;都需要进行TCP协议的创建。 TCP报文的格式 sequence number&#xff08;序列号&#xff09; 占4个字节&#x…

鸿蒙Next开发中的坑与问题总结

文章目录 引言1. 环境搭建问题问题描述解决方案 2. 应用开发中的常见问题问题1&#xff1a;UI布局不兼容问题描述解决方案示例代码 问题2&#xff1a;分布式能力调用失败问题描述解决方案示例代码 问题3&#xff1a;Ability生命周期管理问题问题描述解决方案示例代码 3. 调试与…

一些docker命令

一、基础命令 查看 Docker 版本 docker --version 或 docker version&#xff1a;显示 Docker 客户端和服务器的版本信息。 查看 Docker 系统信息 docker info&#xff1a;显示 Docker 系统的详细信息&#xff0c;包括镜像、容器数量、存储驱动类型等。 Docker 服务管理 s…

VLLM:虚拟大型语言模型(Virtual Large Language Model)

VLLM&#xff1a;虚拟大型语言模型&#xff08;Virtual Large Language Model&#xff09; VLLM指的是一种基于云计算的大型语言模型的虚拟实现。它通常是指那些由多个服务器组成的分布式计算环境中的复杂机器学习模型&#xff0c;这些模型能够处理和理解大量的文本数据。VLLM的…

光伏储能:未来能源的黄金搭档

光伏储能正在重塑全球能源格局。随着技术进步和成本下降&#xff0c;这一组合已成为清洁能源领域最具潜力的解决方案。 光伏发电受天气影响大&#xff0c;发电不稳定。储能系统的加入完美解决了这一难题。白天储存的太阳能&#xff0c;可以在夜晚或阴天时稳定输出&#xff0c;…

Ubuntu22 LLM GPU本地开发环境搭建:4090显卡/cuda/pytorch

0. 4090 显卡开箱与安装 可参考文章&#xff1a; https://www.toutiao.com/item/7477816734344217100/ 扩展内存注意事项 机箱过来只有一条32G内存&#xff0c;扩展到4条32G ddr5 内存条&#xff0c;开机可能要等约2分钟&#xff01;&#xff01;&#xff01;处于黑屏状态&…