3.11.1 cookie
- 以键值对的形式存储信息在浏览器
- cookie 不能跨域,当前及其父级域名可以取值
- cookie 可以设置有效期
-
3.11.2 session
基于服务器内存的缓存(非持久化),可保存请求会话
- 每个 session 通过 sessionid 来区分不同请求
- session 可设置过期时间
- session 也是以键值对形式存在的
在 foodie-dev-api 模块下的 HelloController 文件添加 getSession 方法
package com.imooc.controller;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;import springfox.documentation.annotations.ApiIgnore;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSession;/*** @author 92578* @since 1.0*/@ApiIgnore@RestControllerpublic class HelloController {@GetMapping("/hello")public Object hello() {return "Hello World~";}@GetMapping("/setSession")public Object setSession(HttpServletRequest request) {HttpSession session = request.getSession();// 设置 sessionsession.setAttribute("userInfo", "new user");// 设置过期时间session.setMaxInactiveInterval(3600);// 获取 sessionsession.getAttribute("userInfo");// 移除 session// session.removeAttribute("userInfo");return "ok";}}
打开浏览器,输入 http://localhost:8088/setSession 返回 OK
打开浏览器调试工具,发现已经获取到 jsessionid
刷新页面,切换到“网络”,发送的请求中已经包含了 cookie
