【SpringMVC】常用注解:@SessionAttributes

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作用域中的数据。

相关推荐
3***68842 分钟前
Spring Boot中使用Server-Sent Events (SSE) 实现实时数据推送教程
java·spring boot·后端
k***1955 分钟前
Spring 核心技术解析【纯干货版】- Ⅶ:Spring 切面编程模块 Spring-Instrument 模块精讲
前端·数据库·spring
C***u1765 分钟前
Spring Boot问题总结
java·spring boot·后端
Elieal20 分钟前
5 种方式快速创建 SpringBoot 项目
java·spring boot·后端
better_liang28 分钟前
每日Java面试场景题知识点之-Java修饰符
java·访问控制·static·abstract·final·修饰符·企业级开发
rgeshfgreh43 分钟前
Spring事务传播机制深度解析
java·前端·数据库
无名-CODING44 分钟前
Java Spring 事务管理深度指南
java·数据库·spring
xiaolyuh12344 分钟前
Spring MVC Bean 参数校验 @Validated
java·spring·mvc
蕨蕨学AI1 小时前
【Wolfram语言】45.2 真实数据集
java·数据库
糖~醋排骨1 小时前
DHCP服务的搭建
linux·服务器·网络