详解SpringBoot中@SessionAttributes的使用

 更新时间:2022年07月01日 08:21:27   作者:IT利刃出鞘  
这篇文章主要通过示例为大家详细介绍了SpringBoot中@SessionAttributes的使用,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下

简介

说明

本文介绍SpringBoot中@SessionAttributes的用法。

概述

在默认情况下,ModelMap中的属性作用域是request级别,也就是说,当本次请求结束后,ModelMap 中的属性将销毁。如果希望在多个请求中共享ModelMap中的属性,必须将其属性转存到session 中,这样 ModelMap 的属性才可以被跨请求访问。

Spring 允许我们有选择地指定 ModelMap 中的哪些属性需要转存到 session 中,以便下一个请求属对应的 ModelMap 的属性列表中还能访问到这些属性。这一功能是通过类定义处标注 @SessionAttributes 注解来实现的。

代码

后端代码

Controller

@Controller
@RequestMapping("/anno")
@SessionAttributes(value={"msg"})   // 把Mapmodel中名字为msg的属性存入到session属性列表中
public class AnnoController {
    @RequestMapping(value="/testSessionAttributes")
    public String testSessionAttributes(Model model){
        System.out.println("testSessionAttributes...");
        // 底层会存储到request域对象中
        model.addAttribute("msg","testSessionAttributes");
        return "success";
    }
 
    @RequestMapping(value="/getSessionAttributes")
    public String getSessionAttributes(ModelMap modelMap){
        System.out.println("getSessionAttributes...");
        String msg = (String) modelMap.get("msg");
        System.out.println(msg);
        return "success";
    }
 
    @RequestMapping(value="/delSessionAttributes")
    public String delSessionAttributes(SessionStatus status){
        status.setComplete();//删除session域中的存入的数据
        return "success";
    }
}

前端代码

success.html

<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <h3>入门成功</h3>
    ${ msg }
    ${sessionScope}
</body>
</html>

测试

测试1

访问:http://localhost:8080/anno/testSessionAttributes/

前端

测试2

访问:http://localhost:8080/anno/getSessionAttributes/

后端打印

getSessionAttributes...
testSessionAttributes

测试3

访问:http://localhost:8080/anno/getSessionAttributes/

测试4

再次访问:http://localhost:8080/anno/getSessionAttributes/

后端打印

getSessionAttributes...
null

前端

到此这篇关于详解SpringBoot中@SessionAttributes的使用的文章就介绍到这了,更多相关SpringBoot @SessionAttributes内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java中List与Map初始化的一些写法分享

    Java中List与Map初始化的一些写法分享

    这篇文章主要介绍了Java中List与Map初始化的一些写法有需要的朋友可以参考一下
    2014-01-01
  • 深入理解Java中的字符串类型

    深入理解Java中的字符串类型

    这篇文章主要介绍了Java中的字符串类型,需要的朋友可以参考下
    2014-02-02
  • java 安全 ysoserial CommonsCollections6 分析

    java 安全 ysoserial CommonsCollections6 分析

    这篇文章主要介绍了java 安全 ysoserial CommonsCollections6示例分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10
  • 基于Spring AOP实现日志自动打印功能

    基于Spring AOP实现日志自动打印功能

    这篇文章主要介绍了基于Spring AOP实现日志自动打印功能,文中通过代码示例讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2025-01-01
  • 如何测试Java类的线程安全性

    如何测试Java类的线程安全性

    这篇文章主要介绍了如何测试Java类的线程安全性,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • SpringBoot整合MongoDB的实现代码

    SpringBoot整合MongoDB的实现代码

    自己本科时候一直使用的是Mysql,目前的课题组使用的是MongoDB,因此就花了一部分时间整理了一下,实现springboot与MongoDB的整合,并且实现基本的增删改查操作,从头到尾给出一个完整的案例。
    2021-05-05
  • Java ArrayList如何实现生成不重复随机数

    Java ArrayList如何实现生成不重复随机数

    这篇文章主要介绍了Java ArrayList如何实现生成不重复随机数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • springboot项目mysql-connector-java默认版本如何查看

    springboot项目mysql-connector-java默认版本如何查看

    这篇文章主要介绍了springboot项目mysql-connector-java默认版本如何查看问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • SpringBoot实现elasticsearch索引操作的代码示例

    SpringBoot实现elasticsearch索引操作的代码示例

    这篇文章主要给大家介绍了SpringBoot如何实现elasticsearch 索引操作,文中有详细的代码示例,感兴趣的同学可以参考阅读下
    2023-07-07
  • SpringBoot Starter依赖原理与实例详解

    SpringBoot Starter依赖原理与实例详解

    SpringBoot中的starter是一种非常重要的机制,能够抛弃以前繁杂的配置,将其统一集成进starter,应用者只需要在maven中引入starter依赖,SpringBoot就能自动扫描到要加载的信息并启动相应的默认配置。starter让我们摆脱了各种依赖库的处理,需要配置各种信息的困扰
    2022-09-09

最新评论