会话技术简介
1.存储客户端的状态
Http协议是无状态的,也就是说每个客户访问服务器端资源时,服务器并 不知道该客户端是谁,所以需要会话技术识别客户端的状态。
2.会话技术
从打开一个浏览器访问某个站点,到关闭这个浏览器的整个过程,称为一次会话。
Cookie:数据存储在客户端本地,减少服务器端的存储的压力,安全性不好,客户端 可以清除cookie
Session:将数据存储到服务器端,安全性相对好,增加服务器的压力
Cookie技术
服务器端向客户端发送一个Cookie
1)创建Cookie:
2)设置Cookie在客户端的持久化时间:
3)设置Cookie的携带路径:
4)向客户端发送cookie:
5)删除客户端的cookie:
服务器端向客户端发送一个Cookie
1)创建Cookie:
Cookie cookie = new Cookie(String cookieName,String cookieValue);
注意:Cookie中不能存储中文
2)设置Cookie在客户端的持久化时间:
cookie.setMaxAge(int seconds); ---时间秒
3)设置Cookie的携带路径:
cookie.setPath(String path);
4)向客户端发送cookie:
response.addCookie(Cookie cookie);
5)删除客户端的cookie:
–如果想删除客户端的已经存储的cookie信息,那么就使用同名同路径的持久化时间为0的cookie进行覆盖即可
Session技术
Session技术是将数据存储在服务器端的技术,会为每个客户端都创建一块内存空间存储客户的数据,但客户端需要每次都携带一个标识ID去服务器中寻找属于自己的内存空间。所以说Session的实现是基于Cookie,Session需要借助于Cookie存储客户的唯一性标识JSESSIONID
Session我们主要学习如下三个问题:
–怎样获得属于本客户端的session对象(内存区域)?
HttpSession session = request.getSession();
–session.setAttribute(String name,Object obj);
–session.getAttribute(String name);
–session.removeAttribute(String name);
–怎样向session中存取数据(session也是一个域对象)?
session对象的生命周期
–创建:第一次执行reqest.getSession()时候创建
–销毁:默认30分钟(从最后一次操作[不操作服务端]开始计时)
–作用范围:默认是在一次会话,一次会话中都是公用一个session对象