zoukankan      html  css  js  c++  java
  • 基础回顾: 关于Session的一些细节

    1 session是服务端技术, cookie是客户端技术

    2 默认情况下, 一个浏览器独占一个session对象, 也就是说, 开启两个浏览器进程, 它们之间使用的session不是同一个session

    3 通过一个浏览器进程产生出来的浏览器窗口, 这些窗口共享的是同一个session, 产生方式可以是点击出来的(target属性为_blank), 也可以是拖出来的

    4 IE8浏览器不管启动多少个浏览器进程, 共享的都是同一个session对象

    5 session.getSession()方法通过判断浏览器发送请求是否携带JSESSIONID来判断是否为浏览器创建session  // 待查看tomcat源码验证

    6 session的生命周期

      创建 - 调用getSession()方法且JSESSIONID不存在时

      销毁 - session对象在服务器中驻留30min内没有被使用, 就会被销毁, 所以在手工设置JSESSIONID的cookie时, 若将cookie的超时时间设置为超过30min, 就没有意义了

    7 默认情况下, JSESSIONID的cookie有效时间为一个会话, 也就是说, 关闭浏览器之后, JSESSIONID的cookie就会别销毁, 服务器可以通过手工设置JSESSIONID的有效时间, 来防止用户错误操作关闭浏览器, 导致再次开启浏览器访问资源时, 丢失数据

    8 用户在web.xml文件中手工配置session的失效时间

    9 用户可以手工调用session.invalidate方法,摧毁session, 注意与移除session的removeAttribute方法区分开来

    10 如何做到一个session为一个浏览器的多次请求服务?

    服务器创建session出来后,会把 session的id号,以cookie的形式回写给客户机,这样,只要客户机的浏览器不关,再
    去访问服务器时,都会带着session 的id号去,服务器发现客户机带session id过来了,就会使用内存中与之对应的
    session为之服务.

    11 如何做到一个session为多个浏览器的请求服务?

    服务器第一次创建session,程序员把sessionid号,手工以cookie的形式回送给浏览器,并设置cookie的有效期
    这样,即使用户的浏览器关了,开新浏览器时,还会带着sessionid找服务器,服务器从而就可以用内存中与之对应的
    session为第二个浏览器窗口服务.

  • 相关阅读:
    linux下,如何把整个文件夹上传到服务器(另一台linux)
    设置树莓派SSH连接因超时闲置断开(转)
    使用Cygwin登录Raspberry PI
    一个简单的工作日计算
    多线程端点服务发布程序(摘)
    编程实践笔记{Java 线程 并发处理 Webservice}(转)
    ActiveMQ安装
    Android轻量级ORM框架ActiveAndroid入门教程(转)
    我的第一个Raspberry PI装置
    java hashcode的Delphi实现
  • 原文地址:https://www.cnblogs.com/shaohsiung/p/9547559.html
Copyright © 2011-2022 走看看