一:Cookie1)Cookie的实现原理
2)Cookie基本API
方法 使用示例 说明
创建Cookie(String name,String value)Cookie c1 = new Cookie("name","tom")
获取name值String getName()c1.getName()
获取value值String getValue()c1.getValue()
发送cookievoid addCookie(Cookie cookie)response.addCookie(c1)
设置cookie的值void setValue(String value)c1.setValue("李四")
获取所有cookieCookie[] getCookies()rquest.getCookies()
3)Cookie的存活时间
浏览器会话结束
设值最大存活时间:
void setMaxAge(int seconds)
示例:userNameCookie.setMaxAge(60*60);
说明:设置Cookie的有效时间: 如果没有设置,cookie只会保存在浏览器的缓存中,浏览器关闭后cookie立即被删除。
如果设置有效时间,在时间范围内,cookie被写入到浏览器端,关闭浏览器下次访问仍可活的,直到过期。
4)删除Cookie的几种方法
1.没有设置最大存活时间的cookie,浏览器关闭后cookie立即消失;
2.使用浏览器手动清除cookie;
3.浏览器禁用cookie;
4.通过Servlet技术将cookie删除;
5)Cookie分类
1.会话级别:没有设置最大存活时间的cookie,浏览器关闭后消失;
2.持久级别:设置了最大存活时间,浏览器关闭后不会消失;
Cookie的有效路径:
setPath(String path):设置cookie的有效路径,在这个路径及其子路径下有效;
二:Session
1)获取Session的API
1.request.getSession() 创建session 如果session不存在,创建session,存在,获取当前session
2.HttpSession session1 = request.getSession(true);
创建session 如果session不存在,创建session,存在,获取当前session
3.request.getSession(false); 如果当前存在session 获取当前session, 不存在,不不获取session
2)Session的API
方法 使用示例 说明
void setAttribute(String name,Object value)session.setAttribute("loginUser",user)将一个对象与一个名称关联<br />之后存储到session中
Object getAttribute( String name)session.getAttribute("loginUser")通过名称获取session<br />中的数据
void removeAttribute(String name)session.removeAttribute("loginUser")根据指定名称删除<br />session中的数据
String sessionId = session.getId();session.getId()获取session的id
request.getSession();request.getSession();获取当前session
request.getSession(true);(了解)request.getSession(true);获取当前session
request.getSession(false);(了解)request.getSession(false);获取当前session,如果不存在就session为空
invalidate()ression.invalidate()使当前session失效
3)Session的生命周期
4)Session的持久化方案
1. 在Servlet中手动创建JESSIONID; 2. 手动设置JESSIONID的存活时间; 3. 将JESSIONID相应给浏览器;
实现原理:
5)Session的作用域
1.ServletContext域
一个WEB应用(项目)对应一个ServletContext,这个对象中保存的数据正在整个WEB项目中都有效;
创建:服务器启动的时候;
销毁:服务器关闭或项目移除后;
2.HttpServletRequest
一次请求创建一个request。这个对象中保存的数据,一次请求(请求链)内数据有效;
创建:客户端向服务器发送一次请求;
销毁:服务器为这次请求做出响应之后,销毁request;
3.操作作用域的API
存储数据:setAttribute(name,value);
获得数据:getAttribute(name);
删除数据:removeAttribute(name);
|
|