标签:
1、 HTTP协议使用的是无状态连接,对容器而言,每一个请求都来自于一个新的客户。
2、
3、 cookie:
Web服务器为客户端浏览器并保存的简短文本信息;
客户端浏览器向服务器发送请求;服务器发送cookie给客户端;客户端再次发送请求给服务器;客户端返回cookie服务器端。
缺点:数据保存在客户端,用户可能会禁用cookie,导致数据失效。
cookies.setMaxages(毫秒数)可以设置cookies的最大生存时间。
response.addCookies()方法可以将cookies添加到响应中返回给客户端。
服务器在响应请求时,可以将一些数据以“键-值”对的形式通过响应信息保存在客户端。
浏览器再次访问相同的应用时,会将原先的cookie通过请求信息带到服务器端。
4、 Session 服务器为客户端创建并维护的用于存放客户状态数据的对象。
用户可能会禁用Cookie,这时候可以重写URL地址来解决。
服务器可以为客户端创建并维护一个Session对象,用于存放数据,在创建Session对象的同时,服务器将会为该Session对象产生一个唯一编号,这个编号称之为SessionID;
服务器以Cookie的方式将SessionID存放在客户端,当浏览器再次访问该服务器时,会将SessionID作为Cookie信息带到服务器,服务器可以通过该SessionID检索到以前的Session对象,并对其进行访问;
isNew(),setMaxInactiovInterval(秒),invalidate();
Session对象是某个Servlet调用HttpServletRequest.getSession()这样的语句时才被创建;
如果你不想创建一个新的会话,可以调用getSession(false),这样要么得到null,要么得到一个已经有的HttpSession;
Session对象是保存在服务器端,浏览器关闭时并不意味着Session对象被删除;
Session销毁的三种情况:
5、 应当尽量使用维护时间段的域对象,或者在不使用后利用removeAttribute()方法销毁绑定的对象;
6、 当Cookie不能工作时,容器就会求助于URL重写,对HTTP响应中发送的所有URL完成编码;显示使用了URL编码后,容器会首先尝试使用Cookie完成会话管理,只有当Cookie方法失败时才会使用URL重写;在向客户返回第一个响应时,会同时尝试设置Cookie和URL重写两种做法。
7、 URL重写是容器自动完成的,但需要我们对URL进行编码才有效
《Java核心技术》、《Java编程思想》、
JavaWeb chapeter 5 Web应用程序状态管理
标签:
原文地址:http://www.cnblogs.com/littlejava/p/5618711.html