Spring常用注解-@SessionAttributes与@S

作者: Real_man | 来源:发表于2018-11-16 10:08 被阅读2次

    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会直接报错
    image
    先经过@SessionAttributes

    首先访问/model/parameter的url


    image

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


    image

    最后

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

    参考

    相关文章

      网友评论

        本文标题:Spring常用注解-@SessionAttributes与@S

        本文链接:https://www.haomeiwen.com/subject/gtvpfqtx.html