亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Spring常用注解-@SessionAttributes與@SessionAttribute會話數據控制

session存储也是后端比较重要的一个知识点,面试的时候常常会拿来与cookie对比,还有一些分布式Session,单点登录等问题啊,不过使用Spring的时候,它已经给我们的Session做了很多方便的操作,其中就有@SessionAttribues和@SessionAttribute注解。

简介

@SessionAttributes用于在会话中存储Model的属性,一般作用在类的级别。像下面的代码,model的属性user会被存储到session中,因为@ModelAttribute与@SessionAttributes有相同的注解。

@Controller
@SessionAttributes("user")
public class ModelController {

    @ModelAttribute("user")
    public User initUser(){
        User user = new User();
        user.setName("default");
        return user;
    }

}

@SessionAttribute是用于获取已经存储的session数据,并且作用在方法的层面上。

   @RequestMapping("/session")
    public String session(
            @SessionAttribute("user") User user
    ){
        // do something
        return "index";
    }

实例

参考我之前的Spring MVC入门案例,搭建好环境,再参考前面的Spring @ModelAttribute注解

这个时候,我们已经有能运行的项目了。接下来准备代码

  1. 准备java文件。先准备@SessionAttributes的文件,用于存储session
@Controller
@RequestMapping("/model")
@SessionAttributes("user")
public class ModelController {

    @ModelAttribute("user")
    public User initUser(){
        User user = new User();
        user.setName("default");
        return user;
    }

    @RequestMapping("/parameter")
    public String parameter(
            @ModelAttribute("user") User user
    ) {

        return "index";
    }

}
  1. 准备@SessionAttribute的文件,用于检索session,以验证注解是否正确。
@Controller
public class SessionController {
    @RequestMapping("/session")
    public String session(
            @SessionAttribute("user") User user,
            HttpServletRequest request
    ){
        return "index";
    }
}


  1. 进行测试。
不经过@SessionAttributes会直接报错

先经过@SessionAttributes

首先访问/model/parameter的url

然后访问/session的url。这个地址,我们没有传递任何参数,可以看到从session中获取user对象成功了

最后

这两个注解也算常用,希望能对看的人有帮助

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
JAVA開發工程師
手記
粉絲
1.1萬
獲贊與收藏
1545

關注作者,訂閱最新文章

閱讀免費教程

  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消