`
hekeji
  • 浏览: 51349 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

JSP处理session与cookie关系(转载)

 
阅读更多
为什么登陆后,只要不关闭浏览器,session就能一直存在?当然session的数据是保存在服务器上的,但服务器是怎么识别这些数据都是谁的呢?答案是sessionid,每一个浏览者都唯一的sessionid,这就很好的区分了不同浏览者的不同session了.sessionid是怎么产生的?应该是第一次访问服务器的时候随即生成的.假如是111,然后他的登陆信息是true,服务器就知道sessionid为111已经登陆了,这些信息都存在了服务器上了.但当浏览者继续操作的时候,也就是打开该系统的另一个页面的时候sessionid怎么办?如何传递?打开另一个页面的时候其实相当于重新访问系统,如果没有特殊的处理机制,系统会再次重新分配一个sessionid的,这样的话就失去意义了~!所以sessionid在第一次访问后应该存在了客户端.能寸哪呢?当然,只能寸在cookie中了,这就是为什么关闭cookie,session就失去作用了


十三、保存session id的几种方式

A.保存session id的方式可以采用cookie,这样在交互过程中浏览器可以自动的按照规则把这个标识发送给服务器。
B.由于cookie可以被人为的禁止,必须有其它的机制以便在cookie被禁止时仍然能够把session id传递回服务器,经常采用的一种技术叫做URL重写,就是把session id附加在URL路径的后面,附加的方式也有两种,一种是作为URL路径的附加信息,另一种是作为查询字符串附加在URL后面。网络在整个交互过程中始终保持状态,就必须在每个客户端可能请求的路径后面都包含这个session id。
C.另一种技术叫做表单隐藏字段。就是服务器会自动修改表单,添加一个隐藏字段,以便在表单提交时能够把session id传递回服务器。



二十五、session cookie和session对象的生命周期是一样的吗

当用户关闭了浏览器虽然session cookie已经消失,但session对象仍然保存在服务器端

二十六、是否只要关闭浏览器,session就消失了

程序一般都是在用户做log off的时候发个指令去删除session,然而浏览器从来不会主动在关闭之前通知服务器它将要被关闭,因此服务器根本不会有机会知道浏览器已经关闭。服务器会一直保留这个会话对象直到它处于非活动状态超过设定的间隔为止。
之所以会有这种错误的认识,是因为大部分session机制都使用会话cookie来保存session id,而关闭浏览器后这个session id就消失了,再次连接到服务器时也就无法找到原来的session。
如果服务器设置的cookie被保存到硬盘上,或者使用某种手段改写浏览器发出的HTTP请求报头,把原来的session id发送到服务器,则再次打开浏览器仍然能够找到原来的session。
恰恰是由于关闭浏览器不会导致session被删除,迫使服务器为session设置了一个失效时间,当距离客户上一次使用session的时间超过了这个失效时间时,服务器就可以认为客户端已经停止了活动,才会把session删除以节省存储空间。
  由此我们可以得出如下结论:
  关闭浏览器,只会是浏览器端内存里的session cookie消失,但不会使保存在服务器端的session对象消失,同样也不会使已经保存到硬盘上的持久化cookie消失。




二十七、打开两个浏览器窗口访问应用程序会使用同一个session还是不同的session

通常session cookie是不能跨窗口使用的,当你新开了一个浏览器窗口进入相同页面时,系统会赋予你一个新的session id,这样我们信息共享的目的就达不到了。
此时我们可以先把session id保存在persistent cookie中(通过设置session的最大有效时间),然后在新窗口中读出来,就可以得到上一个窗口的session id了,这样通过session cookie和persistent cookie的结合我们就可以实现了跨窗口的会话跟踪。




2.cookies的属性有:Domain(域):哪个站点发的哪个站点拿走
                   Expires:是否过期
                   Haskeys:是否包含关键
                   path:存放的路径
                   secure:是否安全

注:---cookies的设置在 sever端设置,路径与域一起构成cookie的作用范围

?这个是什么意思的啊?为什么会是在服务器端进行设置的呢?

  ---若不设置过期时间,则表示这个cookie的生命期为浏览器会话期间,关闭浏览器窗口,cookie就消失。这种生命期为浏览器会话期的cookie被称为会话cookie。会话cookie一般不存储在硬盘上而是保存在内存里,当然这种行为并不是规范规定的。若设置了过期时间,浏览器就会把cookie 保存到硬盘上,关闭后再次打开浏览器,这些cookie仍然有效直到超过设定的过期时间。存储在硬盘上的cookie可以在不同的浏览器进程间共享,比如两个IE窗口。而对于保存在内存里的cookie,不同的浏览器有不同的处理方式

IE与FF的区别哦!FF是共享的而IE当打开不同的窗口的时候是不共享 的

3.session(会话):适用于同一客户在一个站点,不同页面上的浏览;适用于同一客户在一个页面上,不断的刷新。

6.当程序需要为某个客户端的请求创建一个session时,服务器首先检查这个客户端的请求里是否已包含了一个session标识(称为session id),如果已包含则说明以前已经为此客户端创建过session,服务器就按照session id把这个session检索出来使用(检索不到,会新建一个),如果客户端请求不包含session id,则为此客户端创建一个session并且生成一个与此session相关联的session id,session id的值应该是一个既不会重复,又不容易被找到规律以仿造的字符串,这个session id将被在本次响应中返回给客户端保存。


IE中:

有效的窗中包括

1.Session对象只在建立Session对象的窗口中有效。

2.在建立Session对象的窗口中新开链接的窗口

无效的窗口包括

1.直接启动IE浏览器的窗口

2.不是在建立Session对象的窗口中新开链接的窗口


分享到:
评论
1 楼 lc87624 2011-11-11  
能麻烦问一下这是转至哪里的文章吗?想看一下全文

相关推荐

    jsp cookie+session实现简易自动登录

    本文实例为大家分享了jsp cookie+session实现简易自动登录的具体代码,供大家参考,具体内容如下 关闭浏览器只会使存储在客户端浏览器内存中的session cookie失效,不会使服务器端的session对象失效。 如果设置了...

    jsp-cookie-session-crud 使用 JSP 实现cookie session验证及增删改查

    在本文中,我们将深入探讨如何使用JSP(JavaServer Pages)技术实现基于cookie和session的用户验证,并且结合CRUD(Create、Read、Update、Delete)操作进行详细讲解。首先,我们来理解JSP、cookie和session的基本...

    Jsp内置对象session总结

    JSP 页面时,JSP 引擎产生一个 Session 对象,同时分配一个 String 类型的 Id 号,JSP 引擎同时将这个 Id 号发送到客户端,存放在 Cookie 中,这样 Session 对象和客户之间就建立了一一对应的关系。 Session 对象的...

    session与cookie详解

    关于session和cookie的详细解释 <br>所有疑问通吃

    JSP中session的使用详解

    ### JSP中Session的使用详解 #### Session概念与作用 在Web开发中,`Session`是一种用于维护客户端与服务器之间会话状态的技术。不同于HTTP协议的无状态特性,`Session`使得服务器能够识别并追踪特定用户的状态,...

    jsp中Session对象源码

    在JavaServer Pages (JSP) 技术中,`Session` 对象是一个非常重要的概念,它用于跟踪用户会话状态。在Web应用中,当用户访问网页时,服务器可能需要记住用户的一些信息,如购物车内容、登录状态等,这时就需要用到...

    Jsp_Session详解.

    同时,作者也探讨了HTTP协议、Cookie机制以及它们与Session机制的关系。最后,文章还讨论了跨应用程序的Session共享问题,并在总结中指出,尽管Session机制有其局限性,但它仍然是Web应用中不可或缺的技术之一。在...

    tomcat+httpservlet+session+cookie+jsp+filter

    tomcat+httpservlet+session+cookie+jsp+filter

    Cookie简介及JSP处理Cookie的方法.doc

    Cookie是Web开发中的一种技术,...在JSP中,利用Cookie类提供的方法,我们可以轻松创建、修改和读取Cookie,从而提供更加个性化的用户体验和服务。理解并熟练掌握Cookie的使用对于任何Web开发者来说都是至关重要的。

    Session Cookie的HttpOnly和secure属性

    其次,GlassFish2.x支持的是servlet2.5,而servlet2.5不支持Session Cookie的"HttpOnly"属性。不过使用Filter做一定的处理可以简单的实现HttpOnly属性。GlashFish3.0(支持servlet3.0)默认开启Session Cookie的...

    jsp中session使用方法

    本文将详细介绍如何在JSP中使用`session`来实现用户状态的跟踪与管理。 #### 二、什么是session `session`是一种服务器端的技术,用于在用户的多个请求之间存储用户的信息。每当一个新用户访问网站时,服务器都会...

    jsp-session测试

    【JSP Session 测试】是Java初学者在学习如何在JSP页面中使用Session对象时的一个常见实践案例。在这个练习中,我们将深入了解JSP Session的概念、工作原理以及如何在实际项目中有效地应用它。 首先,Session是Java...

    session与cookie的内容.doc

    **Session与Cookie** Session和Cookie是Web开发中用于管理用户状态的两种常见技术。它们的主要区别在于数据存储的位置和安全性。 - **Session**: Session将用户的相关信息存储在服务器端,通常是一个键值对的集合...

    jsp的session介绍

    **JSP Session 详解** 在Web开发中,Session是一种用于保持用户状态的关键技术。它允许在用户的不同请求之间存储和检索信息,使得服务器能够识别并跟踪用户的状态,即便用户在浏览网页时页面重载或跳转。这个概念...

    jsp中存取session值简单介绍

    Session的基本工作原理是,当用户第一次访问服务器时,服务器会为该用户创建一个新的session对象,然后通过一个唯一的ID(通常是一个cookie)来标识这个session,将其存储在用户的浏览器中。只要用户不关闭浏览器,...

    python中requests模拟登录的三种方式(携带cookie/session进行请求网站)

    一,cookie和session的区别 ...二,爬虫处理cookie和session 带上cookie和session的好处: 能够请求到登录后的界面  带上cookie和session的弊端: 一个cookie和session往往和一个用户对应,访问太快容易被

    jsp和servlet之中的session详细介绍

    Cookie通过在客户端存储信息并在每次请求时发送回服务器,而session则在服务器端存储数据,通过session ID与客户端通信。 补充:Cookie 和 session 机制之间的区别和联系 Cookie适合存储较小的数据量,且数据存储...

    Cookie&Session&JSP(十二).zip

    在Web开发中,Cookie、Session和JSP是三个至关重要的概念。它们共同构成了用户身份验证、状态管理和动态页面生成的基础。下面将详细讲解这三个概念及其相互关系。 **Cookie** Cookie是一种在客户端和服务器之间...

    深入理解session,cookie

    与Cookie不同,Session数据存储在服务器上,而不是客户端。服务器通过一个唯一的Session ID来标识每个用户,这个ID通常通过Cookie或URL重写等方式发送给客户端。 在Servlet中,`HttpServletRequest`对象提供了`...

Global site tag (gtag.js) - Google Analytics