Cookie的局限:
1.Cookie只能存字符串类型。不能保存对象。
2.一个cookie的容量不超过4KB。
Session概念
1.概念
服务器端会话技术,在一次会话多次请求间共享数据,将数据保存在服务器端的对象中。HttpSession
2.常用方法
1.创建或者得到Session对象
HttpSession getSession()
HttpSession getSession(boolean create)
2.设置Session对象
void setMaxInactiveInterval(int interval):设置Session的有效时间
void invalidate():销毁Session对象
java.lang.String getId():得到Session编号
3.保存会话数据到Session对象
void setAttribute(java.lang.String name, java.lang.Object value):保存数据
java.lang.Object getAttribute(java.lang.String name):获取数据
void removeAttribute(java.lang.String name):清除数据
3.原理
Session的实现是依赖于Cookie的。
现象:服务器能够识别不同的浏览者!!!
浏览器1:(给s1分配一个唯一的标记:s001,把s001发送给浏览器)
1)创建session对象,保存会话数据
HttpSession session = request.getSession(); --保存会话数据 s1
浏览器1:新窗口(带着s001的标记到服务器查询,s001->s1,返回s1)
1)得到session对象的会话数据
HttpSession session = request.getSession(false); --可以取出 s1
新的浏览器1:(没有带s001,不能返回s1)
1)得到session对象的会话数据
HttpSession session = request.getSession(false); --不可以取出 s2
浏览器2:(没有带s001,不能返回s1)
1)得到session对象的会话数据
HttpSession session = request.getSession(false); --不可以取出 s3