写Cookie:
Cookie cookie=new Cookie(“cookiename”,”CookieValue”);
response.addCookie(cookie);
cookie.setMaxAge(3600);
读Cookie:
Cookie[] cookies=request.getCookies();
Cookie cook=cookies[0];
cook.get
Session
Cookie是将信息保存到客户端,只能存字符串,大小为4k.有过期时间,可以设置过期时间。
Session是将信息存在服务器端。可以存任意类型,大小没有限制,也可以设置过期时间。
保存Seesion:
HttpSession session=request.getSeesion(true);//true找不到则创建一个
HttpSession是一个接口。
session.getId();
session.getAttribute(“name”);
session.setAttribute(“name”,value);
session.getCreationTime();
session.getLastAccessedTime();
有父子关系的浏览器窗口中可以去到Session的值。
建立session的时候会像客户端传一个cookie,存的是sessionID的值。
request.getRequestedSessionID() 获取从客户端带过来的sessionID值。
request.isRequestedFromCookie() sessionID是否是从cookie中获取的。
request.getRequestURL().tostring() 获取请求的URL地址。
response.encodeURL(request.getRequestURL()):URL重写,解决客户端禁止了Cookie导致Session无用的问题。维护客户端与服务器之间的会话状态。
Session总结:
1.是服务器的一块内存。(key-value)
2.和客户端窗口(及子窗口)对应。
3.有过期时间。客户端和服务器有对应的SessionID.
4.维护客户端与服务器端对应,防止禁用Cookie导致的问题:内存Cookie,URL重写。