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回写给浏览器。

  • 相关阅读:
    vue store状态存储管理
    Git分支管理
    oracle事务不能回滚的原因
    vue教程(四)--其他实用用法补充
    vue教程(三)-slotkeep-alive的使用
    vue教程(二)--过滤器和监视改动功能
    vue教程(一)-html使用vue
    Linux后台命令导入MySQL语句
    CentOS6下的ElasticSearch运行步骤
    浅谈JAVA代码优化
  • 原文地址:https://www.cnblogs.com/stonewu/p/3737686.html
Copyright © 2011-2022 走看看