使用session保存数据(session是一次会话,里面可以有多次请求)
1、HttpSession session
1.1、index.jsp
Hello World!
1.2、success.jsp
Created by IntelliJ IDEA.
User: Mr Wei
Date: 2020/10/27
Time: 9:18
To change this template use File | Settings | File Templates.
--%>
成功页面测试成功!
model
username:${uname}
session
sessionname:${sessionname}
1.3、测试类
@Controller
public class TestModelController {
@RequestMapping("/test")
public String test(String username, String password, ModelMap modelMap, HttpSession session,HttpServletRequest request){
System.out.println(username+" "+password);
modelMap.addAttribute("uname",username);
session.setAttribute("sessionname",username);
return "success";
}
@RequestMapping("/logout")
public String logout(HttpSession session){
session.invalidate();//让session失效
return "index";
}
}
测试结果

图片.png

图片.png
注:只有点out,session才会在这次会话中失效
2、使用@sessionAttributes("key值") //写的是ModelMap中定义的key值
注:该注解和ModelMap结合使用,当使用ModelMap存值时,会在session中同时存储一份数据
@SessionAttributes()的小括号中如果是一个值,不要加{}
示例:
@SessionAttributes("key")
@SessionAttributes({"key1","key2"})
清除注解SessionStatus status类
status.setComplete();
2.1、index.jsp
Hello World!
2.2、success.jsp
Created by IntelliJ IDEA.
User: Mr Wei
Date: 2020/10/27
Time: 9:18
To change this template use File | Settings | File Templates.
--%>
成功页面测试成功!
model
username:${uname}
SessionAttributes
SessionAttributesName:${uname}
3.2、测试类
@Controller
@SessionAttributes("uname")
public class TestModelController {
@RequestMapping("/test")
public String test(String username, String password, ModelMap modelmap){
System.out.println(username+" "+password);
modelmap.addAttribute("uname",username);
return "success";
}
@RequestMapping("/logout")
public String logout(SessionStatus status){
status.setComplete();//清除session
return "index";
}
}
测试结果

图片.png
3、applicationContext作用域

图片.png

图片.png
这篇博客详细介绍了在 Spring MVC 中如何使用 HttpSession 来保存数据,包括在 Controller 中设置和获取 session 值,以及如何通过 @SessionAttributes 注解进行管理。还展示了如何在 logout 操作中清除 session,并探讨了不同作用域的概念。示例代码和测试结果有助于理解实践过程。

1530

被折叠的 条评论
为什么被折叠?



