四种会话跟踪机制
1. 隐藏域
<input type="hidden" name="sessionid" value="12345">
2. url 重写
在 url
地址栏追加额外数据来标识 session
会话。
要 serlvet jar
包
HttpServletResponse response
和 HttpServletRequest request
3. cookie
存储在客户端浏览器中,最多 20 个域名。
创建 cookie
Cookie cookie = new Cookie(name,value);
- 设置域名:
cookie.setDomain(字符串 xxx)
。 - 设置指定路径,若不指定,与当前页面相同目录下的
url
都会返回cookie
,
cookie.setPath(字符串 xxx)
。 - 设置失效时间:
cookie.setMaxAge(int xxx)
,-1
表示一致持续下去,0
表示失效。 - 设置
js
脚本无法获取cookie
:cookie.setHttpOnly(true)
。 - 添加
cookie
:response.addCookie(cookie对象)
。 - 获取
cookie
数组:Cookie[] cookies = request.getCookies()
;
通过for
循环遍历,getName(),getValue()
。
4. session
存储在服务器中,JsessionId
存在 cookie
中的。
- 获取
Session
:HttpSession session = req.getSession();
- 设置
Session
的key
、value
:session.setAttribute("name","张三");
- 获取
Session
的值:session.getAttribute("name");
- 设置
Session
失效:session.invalidate();
设置Session
存活时间/秒:session.setMaxInactiveInterval(10);
SessionId 持久化
把 JsessionId
存放在 cookie
中,
Cookie cookie = new Cookie("JSESSIONID",session.getId());
cookie.setMaxAge(60*60);
response.addCookie(cookie);
// 秒
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于