1:Cookie:
2:Session:1) Cookie
在会话中浏览器和服务器会产生一些共享数据,然后cookie是将数据保存在浏览器中,Session是将数据保存在服务器中;
Cookie c = new Cookie("name","value") ; Cookie中的创建对象
Cookie是在服务器中创建的,然后通过response对象发送给浏览器,响应头携带数据
浏览器会自发的把数据存储起来,方便下一次给服务器发送数据
然后服务器可以根据请求来获取cookie: request.getCookies();
2) 细节
cookie中如果有中文,需要进行加密和解密操作,
加密: URLEncoder.encode("value","charset");
解密: URLDecoder.decode("value","charset");
setMaxAge(int num); 如果参数是正数,表示多少秒后cookie就会自己消失
如果参数是负数,表示关闭浏览器后,cookie消失.
如果参数是0,表示删除这个同名的cookie;
setPath("uri"); 设置这个cookie的有效路径, 设置这个cookie的作用的路径,默认的是当前的路径
setValue("value") ; 设置这个cookie的值,但是必须要在response.addCookie() 之前执行,否则没有作用;
1) Session的特点:
Session是存在服务器中的,Session是没有数据大小的限制,Session对数据类型也没有限制,相对安全,
创建一个Session : request.getSession() ; 如果没有Session,则会创建一个
request.getSession(true) ; 如果没有就会创建一个Session; request.getSession(false); 获取Session,如果没有,则会返回null ;
2) 获取数据
session.setAttribute(); 设置数据 session.getAttribute("name"); 获取该session的值
在创建session时,服务器会给浏览器发送一个cookie,存储的是JESSIONID,所以当访问session的时候,会根据
浏览器中cookie中的数据来进行反馈,如果没有,则会返回null;
setMaxInactiveInterval(int num) ; 设置这个Session的有效时间 秒
在web.xml文件中设置Session的全局时间 <Session-Config> <Session-timeout>1</Session-timeout> </Session-Config>
里面设置时间,单位是分钟;
手动销毁Session : session.invalidate(); 销毁Session
Session是一直在服务器中,而JESSIONID会随着浏览器的关闭而消失,所以可以设置JESSIONID的时间,
来让Session不会随着浏览器的关闭,而丢失.