会话管理
1. cookie
-
cookie的创建
Cookie cookie = new Cookie("code", CommunityUtil.generateUUID()); //CommunityUtil.generateUUID()随机生成字符串 //cookie只能存字符串
-
设置cookie生效范围
cookie.setPath("/community/alpha"); //只有在 /community/alpha 下生效
-
设置cookie生效时间
cookie.setMaxAge(60*10);//单位是秒
-
发送cookie
response.addCookie(cookie); //因为发送cookie需要用到response,所以要在参数中写入(HttpServletResponse response)
-
获取cookie
在方法参数列表中加入注解@CookieValue("code") String code
-
示例:
// cookie示例 @RequestMapping(path = "/cookie/set",method = RequestMethod.GET) @ResponseBody public String setCookie(HttpServletResponse response){ //创建cookie\ //CommunityUtil.generateUUID()随机生成数 Cookie cookie = new Cookie("code", CommunityUtil.generateUUID()); //设置cookie生效范围 cookie.setPath("/community/alpha"); //设置cookie的设置生存时间 cookie.setMaxAge(60*10);//单位是秒 //发送cookie response.addCookie(cookie); return "set Cookie"; } @RequestMapping(path = "/cookie/get",method = RequestMethod.GET) @ResponseBody public String getCookie(@CookieValue("code") String code){ //获取cookie System.out.println(code); return code; }
-
缺点:
- 存到客服端,不安全,敏感数据不能存
- 每次都发,增加数据量影响性能(用session解决)
-
222
2. Session
-
概述:javaEE标准下
- 优点:安全
- 缺点:增加服务器内存压力
-
工作原理:
-
session创建:
参数引入HttpSession session后,不用手动创建session,声明之后自动注入
-
session数据存入:
session.setAttribute("id",1); session.setAttribute("name","Test");
-
session数据获取
System.out.println(session.getAttribute("id")); System.out.println(session.getAttribute("name"));
-
session生效时间
不设置为浏览器关闭才销毁
-
注意:
- 分布式部署不用session
-
66
ibute(“name”));
6. session生效时间
不设置为浏览器关闭才销毁
7. 注意:
1. 分布式部署不用session
8.