一、WEB 程序中,当用户第一次访问一个页面时候:
a、在服务器端 会产生一个Session ,Session里面存放的信息是在这次回话结束前都一直能访问的数据。另外服务器还会为这次会话分配一个唯一标识 SessionID
b、在客户端 会产生一个cookie并存储了服务器端产生的SessionID,Cookie是客户端技术,程序把每个用户的数据以cookie的形式写给用户各自的浏览器。当用户使用浏览器再去访问服务器中的web资源时,就会带着各自的数据去。这样,web资源处理的就是用户各自的数据了。
【cookie 的使用:http://blog.csdn.net/microfhu/article/details/7091542】
java 数据存入Session :
HttpSession session = request.getSession();
session.setAttribute(
"obj"
, JavaObj);
引用:设置Cookie的最大保存时间,即cookie的有效期,当服务器给浏览器回送一个cookie时,如果在服务器端没有调用setMaxAge方法设置cookie的有效期,那么cookie的有效期只在一次会话过程中有效,
用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一次会话,当用户关闭浏览器,会话就结束了,此时cookie就会失效,如果在服务器端使用setMaxAge方法设置了cookie的有效期,比如设置了30分钟,那么当服务器把cookie发送给浏览器时,此时cookie就会在客户端的硬盘上存储30分钟,在30分钟内,即使浏览器关了,cookie依然存在,在30分钟内,打开浏览器访问服务器时,浏览器都会把cookie一起带上,这样就可以在服务器端获取到客户端浏览器传递过来的cookie里面的信息了,这就是cookie设置maxAge和不设置maxAge的区别,不设置maxAge,那么cookie就只在一次会话中有效,一旦用户关闭了浏览器,那么cookie就没有了,那么浏览器是怎么做到这一点的呢,我们启动一个浏览器,就相当于启动一个应用程序,而服务器回送的cookie首先是存在浏览器的缓存中的,当浏览器关闭时,浏览器的缓存自然就没有了,所以存储在缓存中的cookie自然就被清掉了,而如果设置了cookie的有效期,那么浏览器在关闭时,就会把缓存中的cookie写到硬盘上存储起来,这样cookie就能够一直存在了
【Cookie 的工作过程:http://blog.csdn.net/zyw_anquan/article/details/7642004/】
web浏览器输入URL地址像服务器请求响应时,会检查本地cookie如果存在会将其拼装在URL的Header 位置,发送到服务器端。比如登录信息:
由于本地cookies 可能被人为替换掉所以建议:
1、将登陆信息等重要信息存放为SESSION
2、其他信息如果需要保留,可以放在COOKIE中
二、Servlet 学习
1、什么是servlet?
编写在Server 服务端的程序,可以动态的拓展Server 的能力,并用请求-响应模式提供server 服务。
2、Servlet 服务的过程。
客户端向服务器端提交请求;
服务器端将请求数据提交给Servlet;
Servlet生成响应内容并将其传给Server。响应内容动态生成,通常取决于客户端的请求;
服务器将响应返回给客户端
3、Servlet 的生命周期。
以Tomcat为例;Tomcat容器包含Servlet容器,servlet运行于Servlet 容器中。
当Tomcat 启动时候 Servlet容器启动时自动装载某些Servlet, 默认情况下,当WEB客户第一次请求访问某个Servlet的时候,WEB容器将创建这个Servlet的实例。
Servlet生命周期分为三个阶段:
1,初始化阶段 调用init()方法
2,响应客户请求阶段 调用service()方法
3,终止阶段 调用destroy()方法
Servlet终止阶段:
当WEB应用被终止,或Servlet容器终止运行,或Servlet容器重新装载Servlet新实例时,Servlet容器会先调用Servlet的destroy()方法,在destroy()方法中可以释放掉Servlet所占用的资源。