zoukankan      html  css  js  c++  java
  • Session那点事

    前言:在Web开发中,服务器可以为每个用户创建一个会话对象(Session对象),注意:一个浏览器独占一个Session对象(默认情况下)。因此,在需要保存数据时,服务器程序可以把用户数据写到浏览器独占的Session中,当用户用浏览器访问其他程序时,其他程序可以从用户的Session中取出数据为用户服务。

    一.Session实现原理

    Session是基于Cooike实现的,服务器通过Cookie形式回写给用户的SessionId,值得一提的是,这个Cookie是没有有效期的,只有浏览器进程结束,这个Cookie才消失。

    通过一张图来说明工作原理。

    1

    二. Session的生和死

    大家都知道Session这个对象时服务器创建的,那服务器在什么时候创建这个对象呢?当执行 .getSession 这句代码的时候,服务器就会创建一个Session对象。

    那Session对象在什么时候消亡?默认情况下,不使用Session对象30分钟后服务器自动摧毁该对象。我们也可以在web.xml文件中配置<session-timeout>这个标签来设定被摧毁时间,也可以执行session.invalidate()这句代码摧毁Session对象。

    最后说个小细节,如果用户禁用Cookie,那么浏览器就会收不到服务器回写的SessionId,这时候服务器该怎么解决呢?

    2

    可以调用response.encodeURL(url)这个方法重写URL,在超链接后面加上SessionId回写给浏览器。

  • 相关阅读:
    开源TinyXML 最简单的新手教程
    2014第14周一开发问题记
    2014第13周日
    140329
    2014第13周五
    2014第13周四Webservice概念问题记
    2014第13周三
    2014第13周二
    2014第13周一
    2014第12周日
  • 原文地址:https://www.cnblogs.com/stonewu/p/3737686.html
Copyright © 2011-2022 走看看