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

从tomcat 8源码看sessionid是如何获取的

阅读更多

在请求tomcat的时候,tomcat会从url或者cookie里拿sessionid。从下面源码看到先从url获取,然后再从cookie里拿,好像覆盖了,其实并不是,当cookie被浏览器禁用时,会将cookie的sessionid信息重写进url,URL重写设置sessionId或者放到cookie中传递过来,两者方式只会用一个。

 

org.apache.catalina.connector.CoyoteAdapter->postParseRequest


 

有个比较有意思的是,如果不在web.xml配置sessionid的名称,url和cookie两种方式默认的sessionid的名称是不同的,url的是jsessionid,cookie的是JSESSIONID。

 

org.apache.catalina.util.SessionConfig


 

从url里传sessionid时的格式之前我一直以为跟普通的参数一样是&符号,其实是;符号。格式:/path;name=value;name2=value2?name3=value3&name4=value4。

 

org.apache.catalina.connector.CoyoteAdapter->parsePathParameters


 

那么解析&符号变量的代码在哪呢。

 

org.apache.tomcat.util.http.Parameters->processParameters


 

谢谢!!!

  • 大小: 39.8 KB
  • 大小: 56.4 KB
  • 大小: 66 KB
  • 大小: 57.4 KB
1
0
分享到:
评论

相关推荐

    tomcat6_redis_session.rar

    用户环境必须使用tomcat6,且想做集群环境,没办法只得找资源,可惜网上tomcat6的资源比较少,而且本人找到的基本都有错误,不能保存session进redis,导致每次测试页面都生成新的sessionid,所以最后自己跟源码解决...

    tomcat-cluster-redis-session-manager:Tomcat集群Redis会话管理器Java客户端

    当tomcat从客户端收到请求时,将直接从Redis加载会话。 支持Redis默认,哨兵和集群模式(基于配置)。 展望未来,我们无需在Load Balancer中启用粘性会话(JSESSIONID)。 支持: Apache Tomcat 7 Apache ...

    Session每次都失效的工程(含源码,供研究)

    根据源码这个Valid只做一件事,就是在控制台打印一下当前的sessionID。如果程序已经部署到tomcat下面,这个输出信息,要到 Tomcat 6.0\logs目录下,查看最新的stdout_20120111.log文件,其中那个20120111表示文件...

    MF00617-JAVA餐厅点餐管理源码.zip

    运行环境:jdk7+tomcat8+mysql+myeclipse 使用技术:spring+Struts+hibernate+bootstrap+jquery+ajax 源码描述 SSH开发一个前台结算,前台点餐,后台综合信息管理,后厨配菜的完整源码 登陆:前后台同用一个登陆...

    Java互联网实时聊天系统+源码.rar决定以Netty为核心,以WebSocket为应用层通信协议做一个互联网聊天系统

    用户通过浏览器登录后,浏览器会维持一个Session对象(有效时间30分钟)来保持登录状态,Tomcat服务器会返回用户的个人信息,同时记录在线用户,根据用户id建立一条WebSocket连接并保存在后端以便进行实时通信。...

    基于SSM架构实现的大型分布式购物网站-B2C项目源码+项目说明.zip

    3、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。 基于SSM架构实现的大型分布式购物网站-B2C项目源码+项目说明.zip # taotaoMalls 大型分布式购物网站-B2C项目(持续更新...

    李兴华 Java Web 开发实战经典_带源码_高清pdf 带书签 上

    6.5.1、取得Session Id 6.5.2、登陆及注销 6.5.3、判断新用户 6.5.4、取得用户的操作时间 6.6、application对象 6.6.1、取得虚拟目录对应的绝对路径 6.6.2、范例讲解:网站计数器 6.6.3、查看application范围...

    catalina-tribes.jar

    负载均衡和session复制的文档网上一大堆,但是在一台windows服务器上配置(小弟比较穷,没那么多神机),负载均衡很容易实现了,但是始终无法达到session复制的目的,即每次请求测试页打印session id都不同。...

    单点登录源码

    Spring session | 分布式Session管理 | [http://projects.spring.io/spring-session/](http://projects.spring.io/spring-session/) MyBatis | ORM框架 | [http://www.mybatis.org/mybatis-3/zh/index.html]...

    基于J2EE框架的个人博客系统项目毕业设计论文(源码和论文)

    而越来越多专业知识的 Blog 的出现,让我们看到了 Blog 更多所蕴涵的巨大的信息价值:不同的 Blog 选择不同的内容,收集和整理成为很多人关注的专业 Blog ——目前越来越多的人获取信息的来源是一些固定的 Blog 。...

    java web 视频、电子书、源码(李兴华老师出版)

    6.5.1、取得Session Id 6.5.2、登陆及注销 6.5.3、判断新用户 6.5.4、取得用户的操作时间 6.6、application对象 6.6.1、取得虚拟目录对应的绝对路径 6.6.2、范例讲解:网站计数器 6.6.3、查看application...

    基于JavaWeb实现用于网络安全传输隐私随机密码平台源码+使用教程.zip

    将其war包后粘贴到weapps中去,注意名称要是keyword.war,否则会报错,复制后使用tomcat中bin下的start.bat来开启tomcat,这时服务启动,注意关闭cmd窗口服务停止。 服务启动后,访问本机对应设置的ip加端口号加上/...

    基于javatcpsocket通信的拆包和装包源码-distributed:分散式

    存sessionid,服务端Tomcat用ConcuurentMap存储 session sticky (请求落在同一个服务器上) session replication (复制) session 集中存储 db、缓存服务器 cookie (主流)保存在客户端 access token(userid/tok

    李兴华 java_web开发实战经典 源码 完整版收集共享

    6.5.1、取得Session Id 6.5.2、登陆及注销 6.5.3、判断新用户 6.5.4、取得用户的操作时间 6.6、application对象 6.6.1、取得虚拟目录对应的绝对路径 6.6.2、范例讲解:网站计数器 6.6.3、查看application范围...

    李兴华 Java Web 开发实战经典_带源码_高清pdf 带书签 下

    6.5.1、取得Session Id 6.5.2、登陆及注销 6.5.3、判断新用户 6.5.4、取得用户的操作时间 6.6、application对象 6.6.1、取得虚拟目录对应的绝对路径 6.6.2、范例讲解:网站计数器 6.6.3、查看application范围...

    nginx-upstream-jvm-route-1.12.0.tar.gz

    nginx_upstream_jvm_route 是一个 Nginx 的扩展模块,用来实现基于 Cookie 的 Session Sticky 的功能。 安装方法(进入Nginx源码目录): #patch -p0 # ./configure --prefix=/usr/nginx-0.8.1 --with-...

    nginx-upstream-jvm-route-1.6.tar.gz

    nginx_upstream_jvm_route 是一个 Nginx 的扩展模块,用来实现基于 Cookie 的 Session Sticky 的功能。 安装方法(进入Nginx源码目录): #patch -p0 # ./configure --prefix=/usr/nginx-0.8.1 --with-...

    Nginx安装包

    tomcat+nginx+redis实现均衡负载、session共享(二) 今天我们接着说上次还没完成session共享的部分,还没看过上一篇的朋友可以先看下上次内容,http://www.cnblogs.com/zhrxidian/p/5432886.html。 1.redis简介及...

    jpivot学习总结.doc

    providerClass 否 String 是 如果存在该属性,这个类的实例将会从当前的 member 中获取 SessionParam 对象的实例,这里的类必须实现 com.tonbeller.jpivot.table.navi.ClickableMember.ParameterProvider 接口。...

    SpringMVC-Mybatis-Shiro-redis-master 权限集成缓存中实例

    * 我们平常用的获取上一个请求的方式,在Session不一致的情况下是获取不到的 * String url = (String) request.getAttribute(WebUtils.FORWARD_REQUEST_URI_ATTRIBUTE); */ 三、删除了配置文件中的cookie写入域...

Global site tag (gtag.js) - Google Analytics