session对象的创建时机
来源:互联网 发布:淘宝的宝贝详情在那 编辑:程序博客网 时间:2024/04/30 02:40
session什么时候被创建
*************************************************************************************
一个常见的错误是以为 session 在有客户端访问时就被创建,然而事实是直到某 server 端程序(如 Servlet )调用HttpServletRequest.getSession(true)这样的语句时才会被创建。
*************************************************************************************
一开始不信是因为,用 FireFox 测试清空了Cookie ,只要访问一个jsp ,马上会看到生成了一个名字是 JSESSIONID 的Cookie ,注意这个是 Session Cookie (会话Cookie),不是 Persistent Cookie (持久Cookie).会话Cookie随着Server端Session的创建而创建,但并不随着Session的过期而过期,而是随着Client端的浏览器关闭而销毁。 这说明只要会话Cookie 出现了,Server 端的 Session 就已经创建了。
我一开始的错误想法是:我的 jsp 里没有 HttpServletRequest.getSession(true) 的代码阿,但是 JSESSIONID 的Cookie 出现了就说明 Server 端 Session 创建了,这与《Cookie和Session专题》上面讲的不符啊,不过马上想通了,jsp 属于动态页,本质就是一个 Servlet ,编译后的 jsp 是要到 Server 端进行交互的(即便 jsp 里没写一句交互的代码),因为 jsp 里有内置对象,内置对象就是和 Server 交互的产物,所以如果你的首页是个 jsp 页的话,即便没有HttpServletRequest.getSession(true),Session 也会创建。
如果首页是*.html 就不同了,再将 FireFox 的 Cookie 都清除了,将首页设置为 index.html, 回车,查看,果然这次没有JSESSIONID 的 Cookie 生成,这说明Server的Session也没有创建,让 index.html 提交到一个Servlet,确实可以证明没有 HttpServletRequest.getSession(true) ,Sesion是不会创建的, 即便Servlet又转发(或者重定向)到第二个页,只要第二个页依然不是jsp页,Session就依然不会创建,FireFox 当然也没有名字为 JSESSIONID 的 Cookie 生成。
- session对象的创建时机
- session的创建时机
- Session的创建时机
- 创建 session和销毁session的时机
- spring容器创建对象的时机
- spring容器创建对象的时机
- 单例对象的创建时机在第一次getInstance时
- Struts2 创建Action对象并放入ValueStack的时机
- Spring学习心得(3)-- Spring容器创建对象的时机
- 关于Session对象的创建
- Context 的创建时机
- java web 监听系统在线用户人数(tomcat session的创建时机)
- Spring - IOC创建对象的时机,创建Bean的Scope 及其 IOC的 生命周期
- Spring 创建bean的时机
- [php]对象的销毁时机
- java加载类创建对象的过程以及静态代码段的执行时机
- HIbernate 创建Session 对象
- Spring创建对象初始化bean的时机分为两种形式:
- NSInteger 与 NSUInteger 和 int与 NSInteger 区别
- 为什么st2 chrome无法显示api中的例子
- sencha touch 2 mvc调用文件顺序
- Android系统在超级终端下必会的命令大全(adb shell命令大全)
- 泛型算法练笔
- session对象的创建时机
- 最全的PHP开发Android应用程序
- 补码取反的方法
- sencha touch中list如何撑满整个view
- 发帖水王
- phonegap+andriod+sencha开发注意
- TAlpha::Negative 部分汇编
- Restricted Boltzman Machine
- CRectTracker(橡皮筋类)的应用