18.@SessionAttributes绑定命令对象到session

@SessionAttributes两个作用
	1.把模型中指定的名字的值放到Session中
	2.把Session中指定的名字的值放到模型中
@SessionAttributes("user")//将来在当前类里面对应的方法中所指定的为user对象的数据会存放到session中,user做key
@RequestMapping("/session_attributes")
@Controller
public class SessionAttributesController {
	@RequestMapping("/test1")
	public String test1(User u) { 
		//形成的key值user与@SessionAttributes("user")里面的一样就放到session级别中
		System.out.println("SessionAttributesController test1()...");
		System.out.println("u="+u);
		return "test";
	}

	//test2只是去取值
	@RequestMapping("/test2") //先访问test1不关闭服务器,再访问test2
	public String test2(HttpSession session) { //验证test1中user的是session级别的
		System.out.println("SessionAttributesController test2()...");
		System.out.println("session中user="+session.getAttribute("user"));
		//先访问test1再访问test2,看能不能拿到user
		return "test";
	}
}

在这里插入图片描述
不关闭tomcat
在这里插入图片描述
在这里插入图片描述

结论:@SessionAttributes可以将当前model中指定的数据存放到session中,
并且可以从session中取出数据
@SessionAttributes("user")//将来在当前类里面对应的方法中所指定的为user对象的数据会存放到session中,user做key
@RequestMapping("/session_attributes")
@Controller
public class SessionAttributesController {
	@RequestMapping("/test3")//先访问test1再访问test3
	public String test3(@ModelAttribute("user") User u) { 
		System.out.println("SessionAttributesController test3()...");
		System.out.println("u="+u);
		return "test";
	}
}
结论:session中的数据也会在request中保存(model中保存)
//Session清空session
@RequestMapping("/test4")
public String test4(SessionStatus status) { 
	System.out.println("SessionAttributesController test4()...");
	//清空session数据
	status.setComplete();
	return "test";
	//先访问test1再访问test2,这时有session,再访问test4,再访问test2,有没有了session就证明清空了session
	/* 
	 	先访问test1:
		 	SessionAttributesController test1()...
			u=User [id=4, name=vf, age=22]
		再访问test2:   有session
			SessionAttributesController test2()...
			session中user=User [id=4, name=vf, age=22]
		再访问test4:   清空值
			SessionAttributesController test4()...
		再访问test2:   没有值
			SessionAttributesController test2()...
			session中user=null
	 */
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值