web session
概述
当浏览器访问Web服务器时,Servlet容器就会创建一个Session对象和ID属性。
当客户端(浏览器)后续再访问服务器的时候,只需要把ID标识传给服务器,服务器就能判断出是哪个客户端发送的请求,从而选择与之对应的Session对象为其服务。
服务器需要通过Cookie技术来传递Session的ID属性。
基本使用
HttpSession session = request.getSession();
String value= (String) session.getAttribute("key");
session.removeAttribute("key");
session.setAttribute("key", "value");
Cookie和Session的区别
- Cookie有大小和个数的限制,Session没有
- Cookie相对于Session来说不安全
Servlet 三个域对象的总结
ServletContext
- 一个Web应用只有一个ServletContext。
- 生命周期
- 创建:服务器启动的时候
- 销毁:服务器关闭,或者移除的时候
Request
- 一次请求(一个页面,请求转发)内有效
- 生命周期
- 创建:客户端发送请求
- 销毁:响应结束
Session
- 一次会话内有效。
- 生命周期
- 创建:服务器第一次调用getSession()的时候
- 销毁:
- 非正常关闭服务器(正常关闭,服务器会序列化Session)
- Session过期,默认是30min
- 手动调用Session的invalidate方法
共同点
API基本一致