WEB应用中的SESSION知多少

作者&投稿:钊韵 (若有异议请与网页底部的电邮联系)
web 中的session是什么?~

session:计算机术语

Session机制采用的是在服务器端保持状态的方案。
1、Session在何时被创建
Session在有客户端访问时就被创建,然而事实是直到某server端程序调用 HttpServletRequest.getSession(true)这样的语句时才被创建,注意如果JSP没有显示的使用 关闭Session,则JSP文件在编译成Servlet时将会自动加上这样一条语句HttpSession Session = HttpServletRequest.getSession(true);这也是JSP中隐含的Session对象的来历。由于Session会消耗内存资源,因此,如果不打算使用Session,应该在所有的JSP中关闭它。
2、Session何时被删除
综合前面的讨论,Session在下列情况下被删除:
a.程序调用HttpSession.invalidate();
b.距离上一次收到客户端发送的Session id时间间隔超过了Session的超时设置;
c.服务器进程被停止(非持久Session)。
3、如何做到在浏览器关闭时删除Session
严格的讲,做不到这一点。可以做一点努力的办法是在所有的客户端页面里使用javascript代码window.oncolose来监视浏览器的关闭动作,然后向服务器发送一个请求来删除Session。但是对于浏览器崩溃或者强行杀死进程这些非常规手段仍然无能为力。
4、有个HttpSessionListener是怎么回事
你可以创建这样的listener去监控Session的创建和销毁事件,使得在发生这样的事件时你可以做一些相应的工作。注意是Session的创建和销毁动作触发listener,而不是相反。类似的与HttpSession有关的listener还有 HttpSessionBindingListener,HttpSessionActivationListener和 HttpSessionAttributeListener。
5、存放在Session中的对象必须是可序列化的吗
不是必需的。要求对象可序列化只是为了Session能够在集群中被复制或者能够持久保存或者在必要时server能够暂时把Session交换出内存。在Weblogic Server的Session中放置一个不可序列化的对象在控制台上会收到一个警告。
6、开两个浏览器窗口访问应用程序会使用同一个Session还是不同的Session
对Session来说是只认id不认人,因此不同的浏览器,不同的窗口打开方式以及不同的cookie存储方式都会对这个问题的答案有影响。
7、如何防止用户打开两个浏览器窗口操作导致的Session混乱
这个问题与防止表单多次提交是类似的,可以通过设置客户端的令牌来解决。就是在服务器每次生成一个不同的id返回给客户端,同时保存在Session里,客户端提交表单时必须把这个id也返回服务器,程序首先比较返回的id与保存在Session里的值是否一致,如果不一致则说明本次操作已经被提交过了。可以参看《J2EE核心模式》关于表示层模式的部分。需要注意的是对于使用javascript window.open打开的窗口,一般不设置这个id,或者使用单独的id,以防主窗口无法操作,建议不要再window.open打开的窗口里做修改操作,这样就可以不用设置。
8、为什么Session不见了
排除Session正常失效的因素之外,服务器本身的可能性应该是微乎其微的;理论上防火墙或者代理服务器在cookie处理上也有可能会出现问题。出现这一问题的大部分原因都是程序的错误,最常见的就是在一个应用程序中去访问另外一个应用程序。
9、服务器关掉后,当前Session会丢掉吗
这个取决于你使用什么样的web服务器以及web服务器是如何配置的。tomcat在shutdown前默认会自动将Session保存到指定的目录中,重新启动是重新加载,因此tomcat重新启动后,Session是可以继续使用的。此外,你还何以将Session保存到数据库中,这个要在 server.xml中配置。
10、Cookie的过期和Session的超时有什么区别
会话的超时由服务器来维护,它不同于Cookie的失效日期。首先,会话一般基于驻留内存的cookie不是持续性的cookie,因而也就没有截至日期。即使截取到JSESSION cookie,并为它设定一个失效日期发送出去。浏览器会话和服务器会话也会截然不同。

目 录
一、Session
二、Cookies
三、Cookies机制
四、Session机制
五、Cookies机制与Session机制的区别和联系
六、常见问题
七、Session的用法
Session是WEB上有效的信息交互手段,因其使用方便、稳定、安全、可靠而被众多WEB开发者所认知。尤其在互联网身份验证、网上电子购物等方面的应用更为广泛。下面就着重来介绍下Session。
一、Session
Session,在汉语中表示通话、会话、对话(期)、话路[对谈时间]的意思,其本来的含义一个终端用户与交互系统进行通信的时间(间隔),通常是指从注册(进入系统)到注销(退出系统)之间所经过的时间。比如打电话时从拿起电话拨号到挂断电话这中间的一系列过程可以称之为一个Session。有时候我们可以看到这样的话“在一个浏览器会话期间,…”,这里的会话一词用的就是这个意思,是指从一个浏览器窗口打开到关闭这个期间。Session在我们的网络应用中就是一种客户端与服务器端保持状态的解决方案,有时候Session也用来指这种解决方案的存储结构,
Session对象,就是客户端浏览器与服务器之间建立的互动信息状态。每一个不同的用户连接将得到不同的Session,也就是说Session与用户之间是一种一对一的关系。Session在用户进入网站时由服务器自动产生,并在用户正常离开站点时释放。使用Session的好处就在于,可以将很多与用户相关的信息,例如用户的帐号、昵称等保存到Session中;利用Session,可以跟踪用户在网站上的活动。例如:当你上网进入一个网站时,如果你没有登陆,无论你访问哪几个页面都会跳转回登陆页。还有就是你在购物时,不可能把你的东西放到别人的购物车里去,这就得用一个信息变量来判断!
如果能够提供一些按需生成的动态信息会使web变得更加有用,就像给有线电视加上点播功能一样。这种需求一方面迫使HTML逐步添加了表单、脚本、DOM 等客户端行为,另一方面在服务器端则出现了CGI规范以响应客户端的动态请求,作为传输载体的HTTP协议也添加了文件上载、cookie这些特性。其中 cookie的作用就是为了解决HTTP协议无状态的缺陷所作出的努力。至于后来出现的Session机制则是又一种在客户端与服务器之间保持状态的解决方案。
二、Cookies
Cookie是WEB上最常用的跟踪用户会话方式,当 Cookie被禁止后,一般都用URL重写来跟踪会话。Cookie是一种由服务器发送给客户的片段信息,存储在客户环境中,并在客户所有的对服务器的请求中都要发回它。就好比我们在用IE登陆某个电子购物商城时,IE在得到商品列表页面的 同时还收到Set-Cookie应答头信息,我们打开一个Cookie文件,我们所看到的格式一般都是:
Cookie:NAME=VALUE;Comment=COMMENT;Domain=DOMAINNMAM;Max-age=SECONDS;Path=PATH;secure;Version=1*DIGIT
其中NAME值对(值对间用分号分隔)是必须的,其余都是可选的。最重要的信息当然也在所必须的值对里了,VALUE是NAME的值,也是这个 Cookie的标识,Max-age定义了Cookie的最长生存时间。当我们选购了某种商品,向服务器发送选购清单时,会自动在你的请求信息头里加上NAME值对,如果Cookie被禁止,则用 URL重写方式在URL请求地址上附加NAME值对。当Web服务器收到这个请求后,会检查该Cookie是否存在,然后相应的跟踪会话。从以上分析不难理解,其实Web服务器跟踪会话就靠Set-Cookie头信息,跟踪NAME值对进行身份验证。假如我们用非Web终端接收Web服务器的响应信息,从中解析出Cookie头信息,当再次向Web服务器发送请求时附加上解析出的Cookie信息,Web服务器据此不就可以进行身份认证了吗?
Cookies中文是饼干的意思,对于为何引用Cookies,从网上查找了一些资料:
在浏览器与WEB服务器之间是使用HTTP协议进行通信的,当某个用户发出页面请求时,WEB服务器只是简单的进行响应,然后就关闭与该用户的连接。因此当一个请求发送到WEB服务器时,无论其是否是第一次来访,服务器都会把它当作第一次来对待,这样的不好之处可想而知。为了弥补这个缺陷,Netscape开发出了cookie这个有效的工具来保存某个用户的识别信息,因此人们昵称为“小甜饼”。cookies是一种WEB服务器通过浏览器在访问者的硬盘上存储信息的手段:Netscape Navigator使用一个名为cookies.txt本地文件保存从所有站点接收的Cookie信息;而IE浏览器把Cookie信息保存在类似于 c:\Internet 临时文件\的目录下。当用户再次访问某个站点时,服务端将要求浏览器查找并返回先前发送的Cookie信息,来识别这个用户。Cookies给网站和用户带来的好处:
(1)、Cookie能使站点跟踪特定访问者的访问次数、最后访问时间和访问者进入站点的路径
(2)、Cookie能告诉在线广告商广告被点击的次数,从而可以更精确的投放广告
(3)、Cookie有效期限未到时,Cookie能使用户在不键入密码和用户名的情况下进入曾经浏览过的一些站点
(4)、Cookie能帮助站点统计用户个人资料以实现各种各样的个性化服务,其实,cookie的作用就是为了解决HTTP协议无状态的缺陷所作的努力.
三.Cookie机制
Cookie机制采用的是在客户端保持状态的方案。
Cookie机制,就是当服务器对访问它的用户生成了一个Session的同时服务器通过在HTTP的响应头中加上一行特殊的指示以提示浏览器按照指示生成相应的cookie,保存在客户端,里面记录着用户当前的信息,当用户再次访问服务器时,浏览器检查所有存储的cookie,如果某个cookie所声明的作用范围大于等于将要请求的资源所在的位置也就是对应的Cookie文件。 若存在,则把该cookie附在请求资源的HTTP请求头上发送给服务器,例如:当我们登陆了一个网站,并且填写了有关资料,以本站会员的名义登陆上了有关网页,这时你把浏览器关闭,再重启进入该网站的某一个页面时是以你登陆过的会员进去的,当然,不是所有网站都是这样,我们知道,cookie的保存有临时性的和持久性的,大多都是临时性的,也就是cookie只保存在客户端的内存中,而没有保存在硬盘上,当关闭浏览器,cookie也就销毁。以下是有关 cookie机制的一些具体说明:
cookie的内容主要包括:名字,值,过期时间,路径和域。
其中域可以指定某一个域比如.,相当于总店招牌,比如宝洁公司,也可以指定一个域下的具体某台机器可以用飘柔来做比。
路径就是跟在域名后面的URL路径,比如/或者/foo等等,可以用某飘柔专柜做比。路径与域合在一起就构成了cookie的作用范围。
如果不设置过期时间,则表示这个cookie的生命期为浏览器会话期间,只要关闭浏览器窗口,cookie就消失了。这种生命期为浏览器会话期的 cookie被称为会话cookie。会话cookie一般不存储在硬盘上而是保存在内存里,当然这种行为并不是规范规定的。如果设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie仍然有效直到超过设定的过期时间。
存储在硬盘上的cookie可以在不同的浏览器进程间共享,比如两个IE窗口。而对于保存在内存里的cookie,不同的浏览器有不同的处理方式。对于微软的IE浏览器,在一个打开的窗口上按Ctrl-N(或者从文件菜单)打开的窗口可以与原窗口共享,而使用其他方式新开的IE进程则不能共享已经打开的窗口的内存cookie;对于火狐狸firefox浏览器,所有的进程和标签页都可以共享同样的cookie。一般来说是用javascript的 window.open打开的窗口会与原窗口共享内存cookie。浏览器对于会话cookie的这种只认cookie不认人的处理方式经常给采用 Session机制的web应用程序开发者造成很大的困扰。


最近有那些好听的英文歌(包括:R&B HIP-HOP 抒情 DJ 等等等等)_百度知 ...
http:\/\/file1.baizhao.com\/hard6\/user254\/6254162\/mydisk\/sesdreamcome.mp3 65.a-teens - ...http:\/\/song.yyfc.com\/membersong\/songfolder\/2006\/1\/30\/b3293dc34eb6402d89a5c85fbbc4476d.mp3

...ed 3. ex ist 4.pu n ctuation5.va ses A. progr a mme..._百度知...
1-5: DBABD

谁能告诉我一些欢快且经典的外国歌曲
http:\/\/file1.baizhao.com\/hard6\/user254\/6254162\/mydisk\/sesdreamcome.mp3 65.a-teens - ...http:\/\/song.yyfc.com\/membersong\/songfolder\/2006\/1\/30\/b3293dc34eb6402d89a5c85fbbc4476d.mp3

浙江省高一教材英语词汇
observe \/Eb'zE:v\/ vt.&vi.观察 feather \/'feTE\/ n.羽毛 conclude \/kEn'klu:d\/ vt.&vi....princess \/prin'ses\/ n.公主 by chance 偶然 soften \/'sRfn\/ vt.使变软 merchant \/'mE:tFEnt\/

求一首很好听的英文歌
http:\/\/file1.baizhao.com\/hard6\/user254\/6254162\/mydisk\/sesdreamcome.mp3 65.a-teens - ...http:\/\/song.yyfc.com\/membersong\/songfolder\/2006\/1\/30\/b3293dc34eb6402d89a5c85fbbc4476d.mp3

东方神起all about TVXQ seson1 全集下载
All About TVXQ First1---3---Max昌珉.rmvb http:\/\/www.rayfile.com\/files\/1cec8280-6545-11de-bd86-0019d11a795f\/ All About TVXQ First1---4---Hero在中.rmvb http:\/\/www.rayfile.com\/files\/2ebc158f-6545-11de-b4eb-0019d11a795f\/ All About TVXQ First1---5---U-Know允浩...

突然很想听外国歌,希望有人给我推荐几首,一定要非常好听!
43.larry mullen & adam clayton ---theme from mission:impossible(谍中谍电影原声曲) http:\/\/www...http:\/\/file1.baizhao.com\/hard6\/user254\/6254162\/mydisk\/sesdreamcome.mp3 65.a-teens - ...http:\/\/song.yyfc.com\/membersong\/songfolder\/2006\/1\/30\/b3293dc34eb6402d89a5c85fbbc4476d.mp3 ...

有什么好听的英文歌吗?最好是女歌手唱的,声音很甜的那种,谢了
43.larry mullen & adam clayton ---theme from mission:impossible(谍中谍电影原声曲) http:\/\/www...http:\/\/file1.baizhao.com\/hard6\/user254\/6254162\/mydisk\/sesdreamcome.mp3 65.a-teens - ...http:\/\/song.yyfc.com\/membersong\/songfolder\/2006\/1\/30\/b3293dc34eb6402d89a5c85fbbc4476d.mp3 ...

苍溪县13592248453: WEB应用中的SESSION知多少 -
前池温胃: 目 录 一、Session 二、Cookies 三、Cookies机制 四、Session机制 五、Cookies机制与Session机制的区别和联系 六、常见问题 七、Session的用法 Session是WEB上有效的信息交互手段,因其使用方便、稳定、安全、可靠而被众多WEB开发...

苍溪县13592248453: web 中的session是什么? -
前池温胃: Session直接翻译成中文比较困难,一般都译成时域.在计算机专业术语中,Session是指一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入系统到注销退出系统之间所经过的时间. 具体到Web中的Session指的就是用户在浏览某...

苍溪县13592248453: 什么是Session,有何作用,怎么用? -
前池温胃: Session:在计算机中,尤其是在网络应用中,称为“会话”.Session直接翻译成中文比较困难,一般都译成时域.在计算机专业术语中,Session是指一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入系统到注销退出系统之...

苍溪县13592248453: WEB应用中的SESSION知多少 -
前池温胃: 因为http是无状态的 session用来控制会话 以及用户身份信息验证

苍溪县13592248453: ASP.NET中关于session的用法. -
前池温胃: Session 是 用于保持状态的基于 Web 服务器的方法.Session 允许通过将对象存储在 Web 服务器的内存中在整个用户会话过程中保持任何对象. Session 通常用于执行以下操作:存储需要在整个用户会话过程中保持其状态的信息,例如登录...

苍溪县13592248453: 如何理解session在Web项目中的作用? -
前池温胃: 我觉得关键还是理解session的概念,区别于request,application两个作用域.1)你可以用session来区别不同的用户.代码session.getAttribute("username"),获得的用户名称是不同的.2)你可以用session来保存上一次http request请求的值,比如类似购物车的网站.3)你可以用session来提高性能,不需要重复的去数据库中取.

苍溪县13592248453: Session是什么? -
前池温胃: 一、术语session在我的经验里,session这个词被滥用的程度大概仅次于transaction,更加有趣的是transaction与session在某些语境下的含义是相同的.session,中文经常翻译为会话,其本来的含义是指有始有终的一系列动作/消息,...

苍溪县13592248453: session是什么啊 -
前池温胃: 一、session概述 session是什么,刚开始我也不明白,非专业词典翻译为会议,会议期.作个不太恰当的比喻吧 (虽然不恰当,但意义却是一样的),session是你和网站之间的感情. session在WEB技术中占有非常重要的份量.由于网页是一...

苍溪县13592248453: session的作用范围?? -
前池温胃: 1,对于值类型的变量,Session中保存的是值类型的拷贝 Session["__test0"] = 1; int i = (int)Session["__test0"]+1; int j = (int)Session["__test0"]; 结果:i=2,j=12,对于引用类型的变量,Session中保存的是引用 CDACommon cda = new ...

苍溪县13592248453: WebService里面怎样使用session -
前池温胃: 要在webservice中使用session,1.需要在服务端的方法中加入[WebMethod(EnableSession=true)]修饰方法,2.在客户端,要在实例化了webservice代理类之后,要为它的CookieContainer 实例化一个 new CookieContainer(); 这样才能使用...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网