素材巴巴 > 程序开发 >

SpringMVC-6 如何使用Session

程序开发 2023-09-03 14:55:44

目录

Session原理

当浏览器首次访问服务器时,服务器会创建一个session对象,这个对象存储了这个session的sessionId和一些数据,服务器会将sessionId以cookie的方式发送给浏览器。
当浏览器再次访问服务器时,会将保存的sessionId发送过来,服务器依据sessionId就可以找到对应的session对象。

将属性保存到Session中

在SpringMVC中使用@SessionAttributes注解可以将数据保存到Session中,用该注解标注相应的Controller类,并指明要保存到session中的数据的key,即可
实现上述功能。
代码在此:

@Controller
 //表示要将msg存入session
 @SessionAttributes(value={"msg"})
 public class SessionController {@RequestMapping("/user")public ModelAndView sessionTest() {ModelAndView mav = new ModelAndView();mav.addObject("msg", "欢迎关注码农小田");mav.setViewName("result");return mav;}	
 }
 

在index.jsp中创建一个超链接,指向/user请求。

ClickMe.
 

新建一个jsp文件,命名为result.jsp用来查看结果。

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
 
 
 
 
 结果页
 
 ${sessionScope.msg}
 
 
 

测试运行

代码编写完成后,将工程部署并在浏览器访问
在这里插入图片描述
点击超链接
在这里插入图片描述
可以看到,我们是从sessionScope取到的msg,这说明数据已经存到session了。
本着科学严谨的态度,为了证明是@SessionAttributes注解的作用将数据存入了session,我们去掉该注解再次测试:
在这里插入图片描述
原本的数据不见了,我们将result.jsp中的代码修改一下:

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
 
 
 
 
 结果页
 
 
 
 ${requestScope.msg}
 
 
 

再次部署运行,数据出来了
在这里插入图片描述

总结

在默认情况下,模型属性都是存在request中的,如果我们需要将数据存入session,例如保存用户登录状态的时候,就要使用@SessionAttributes注解来将数据存入session。


标签:

素材巴巴 Copyright © 2013-2021 http://www.sucaibaba.com/. Some Rights Reserved. 备案号:备案中。