背景:SpringMVC中的注解挺多的,之前学习过cookie和session的区别和联系,在SpringMVC中遇到了这两个,自然而然的就把他们放在一块儿学习了,但是他们两个好像没有多大关系,下面就介绍一下 @CookieValue 注解和SesssionAttributes注解的相关内容~~~
一、cookie 和session 的区别(和SpringMVC中的内容没有关系,就是普及一下)
1、cookie数据存放在客户的浏览器上,session数据放在服务器上。
2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗
考虑到安全应当使用session。
3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
考虑到减轻服务器性能方面,应当使用COOKIE。
4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。
二、@CookieValue
1、作用:
绑定请求中的Cookie值
2、例子:
如果想要获得请求中的JSESSIONID
SpringMVCTest.Java
index.jsp
效果:
三、@SesssionAttributes
1、作用
如果希望在多个请求之间公用某个模型属性数据,则可以在控制器上标注一个@SesssionAttributes,SpringMVC将在模型中对应的属性暂存到HttpSession中。
2、使用范围
除了可以通过属性名指定需要放到会话中的属性外,还可以通过模型属性的对象类型指定哪些模型属性需要放到会话中。
只能放在类的上面,而不能修饰方法。
3、例子
User.java(添加一个带参数的构造器)
SpringMVCTest.java
index.jsp
Success.jsp
效果(没有放到session中):
解决方案:
效果: