Cookie和Session相关
Cookie:
因HTTP是无状态的协议,即客户端和服务器端不需要建立持久的链接,因此为了建立客户端浏览器与服务器的识别功能,需用Cookie解决。
Cookie是在客户端请求服务器时,服务器为了记录该用户状态,用response向客户端浏览器返回一个cookie,浏览器将该cookie保存起来,待再次访问该服务器时,浏览器将cookie附于URL一同提交给服务器,服务器通过cookie信息识别用户身份与状态。
特点:
- 服务器可以向客户端写内容。
- 只能是文本内容。
- 客户端可以阻止服务器写入。
- 只能取自己webapplication写入的cookie。
- 一个servlet/jsp设置的cookies能够被同一个路径(指URL路径)下面或者子路径下面的servlet/jsp读取到,不能被父路径下的servlet/jsp读取到。
创建与使用:
cookie以”名-值”对的形式保存数据
创建cookie:
|
从客户端拿到cookie:
|
Session:
记录在服务器端,与唯一的客户端浏览器窗口相关联
实现方式:
- 通过Cookie实现(将SessionId放在临时Cookie中)
- 若浏览器不支持Cookie,可通过URL重写来实现
response.encodeURL() (转码,URL后面加入SessionId,(表现为jsessionid=XXXXXXX……)客户端访问的同时在URL中将SessionId告知服务器。)
通过HttpSession来读写Session
|
Session过期时间:在web.xml中配置:
|
Session作用:
可以存内容,且该内容只有与Session相匹配的客户端窗口可以读取。session.setAttribute("accessCount",value); //在session中存入名为"accseeCount"的属性,值为value。(名字只能为String,值Object)session.getAttribute("accseeCount"); //拿到名为"accseeCount"的属性的值。
Session访问路径问题:
同一个客户端窗口下,同一个application下的servlet/jsp可以共享同一个sessio。