首先Session:会话,是保存在服务器端的,常用于登录状态的判定,之所以网站能够辨析是A用户还是B用户在
访问网站,全靠Session中的SessionID当作区分的标志;当然由于Session是保存在服务器端,因此安全性相对还是
比较高的,也常用在验证码等功能模块;它的生命周期默认是24分钟,注意:这里的24分钟是指发呆时间,也就是说
24分钟内没有操作,那么算过期,反之只要你在第23分钟操作了一下网站,那么24分钟又会重新计时,当然可以通过
修改配置文件延长时间;
然后Cookie:是保存在客户端的,准确的说,是保存在本地机器的某个浏览器上,也就是说Chrome浏览器保存
的Cookie信息,即使是本机的Firefox浏览器,也是无法读取到的;由于Cookie是保存在用户的机器上,因此安全性相
比Session就会低一些,因此常用在记住用户名的功能上;当然,它最重要的用途有两个:1. 浏览历史的记录,为什
么我们没有登录淘宝,京东,可惜那两个网站都能知道我们访问了哪些商品,还能够给我们推荐商品呢?其实这全都
是Cookie的功劳,它能够记录我们的访问页面,当我们再请求该网站时,会在HTTP请求中带上我们的Cookie信息;
2. 配合SessionID,其实刚刚谈到了Session能够帮助网站区分是哪个用户在浏览网站,这是怎么做到的呢?其实,这
是利用Cookie将SessionID存储在本机浏览器,然后系统将Cookie中的SessionID和服务器端的SessionID进行比较,
从而能够判断用户登录状态;它要是没有设置生命周期,则浏览器关闭时,Cookie自动被销毁;
接着Servletcontext:首先它是保存在服务器端的,它是用作数据共享的,无论是A电脑,还是B电脑去访问这个
变量里面的数据,得到的结果都是一样的,因此常用在网站记录“多少人同时在线”,“页面被访问了多少次”等等计数;
而且它用途远远不止这些,还有就是读取配置文件properties信息等,默认生命周期是:Web应用被启动时,它就被创
建了,然后重启Tomcat或者服务被关闭时,它就被销毁了,存储的数据就消失了。
相信大家对于JAVA中,这三者的关系与区别有了一个全新的认识,下次我们再深入讲解一些具体应用!
转http://blog.csdn.net/bayren820/article/details/50472455