Spring学习笔记----SpringMVC操作Session与Cookie

一、Cookie

cookie相关说明:
    1、cookie由服务器端创建,然后添加到HttpServletResponse中发送给客户端(浏览器)。
    2、可以添加多个cookie键值对。

    3、cookie由键值名和键值组成。“

            相同domain和path”中的键值名不能重复,添加键值名重名的键值对会覆盖上一个同名的键值对。

    4、添加cookie时要指定cookie所在域(setPath),指定存在时长(setMaxAge)。
    5、服务端创建好cookie后提交给客户端,之后浏览器的每次请求(HttpServletRequest)里都会携带“cookie数组”。

    6、springmvc有两种方式获取:

        (1)在控制器中通过注解@CookieValue(键值名),获取指定某个cookie。

        (2)通过HttpServletRequest中的getcookies方法获取cookie数组,然后迭代里面的每一个cookie键值对。

二、Session

@SessionAttribute作用于处理器类上,用于在多个请求之间传递参数,类似于会话的属性,但不完全一样,一般来说@SessionAttribute设置的参数只用于暂时的传递,而不是长期的保存,长期保存的数据还是要放到会话中。

通过@SessionAttribute注解设置的参数有3类用法:

    (1)在视图中通过request.getAttribute或session.getAttribute获取

    (2)在后面请求返回的视图中通过session.getAttribute或者从model中获取

    (3)自动将参数设置到后面请求所对应处理器的Model类型参数或者有@ModelAttribute注释的参数里面。

将一个参数设置到SessionAttribute中需要满足两个条件:

    (1)在@SessionAttribute注解中设置了参数的名字或者类型

    (2)在处理器中将参数设置到了model中。

@SessionAttribute用户后可以调用SessionStatus.setComplete来清除,这个方法只是清除SessionAttribute里的参数,而不会应用Session中的参数。



你可能感兴趣的:(JAVA,WEB,JAVA学习笔记)