jfinal club

詹总好。在jfinal club项目里面,我看到注册登录的方案是自己创建一个id来放在cookie里面做识别的。我想请问一下为什么不用jsessionid那个javaee规范里面的呢?

评论区

JFinal

2017-08-22 16:26

jsessionid 用的是 javaee 里面的 session,做集群的时候要考虑到 session 的共享,不能直接部署成集群

而 jfinal club 中的 session 是存放在共享的数据库中的 session 表里面的,你可以直接将 jfinal club 部署成集群,集群中的每个节点共享的是数据库中的 session 表中的数据

每个节点中的 ehcache 也对 session 做了缓存,避免每次都去读数据库,这样既保障了集群,又保障了性能

jfinal 源码直播完成后,会再开启 jfinal club 的源码的直播,session 是重点会讲的地方

linuxea

2017-08-22 16:36

@JFinal 嗯。原来如此。还有个问题想不明白,jsessionid是 javaee 里面 session 的id。那是不是客户端访问的每个站点的cookie中应该都有一个jsessionid呢?可是我查看浏览器的每个站点,除了自己现在正在开发的项目外,其它站点都没看到jsession在cookie中的存在。

JFinal

2017-08-22 16:38

@linuxea jseesionid 只是一个 cookie 的 name 值而已,不同的项目用的名字不一样,例如 tomcat 用的是 jsessionid,而 php 用的别的,如果你用 jetty 的话可能又是另一个名称

比较大点的站点都会自己取名,例如本站就是 jfinalId,本质就是一个 cookie

linuxea

2017-08-22 16:49

@JFinal 我还以为jsessionid是java ee 规范的一部分。我打开查看jfinal站点的cookie,只有pgv_pvi,和pgv_si,可是为什么并没有看到您说的jfinalId呢?

linuxea

2017-08-22 16:51

我原先的想法:jsessionid名称是javaEE规范的一部分。原来不是。而是跟服务器挂勾的

ThreeX

2017-08-22 18:42

你用内置的jetty跑club,好似没有jsessionid之类的ID的。上次我还奇怪咋没有?以为项目内有搞事,然后换用汤姆猫发现有jsessionid了。

linuxea

2017-08-23 09:57

@ThreeX 我用的是tomcat

linuxea

2017-08-23 09:57

算了。不纠结这个了。原理知道就好。:/

JFinal

2017-08-23 16:56

@linuxea jfinalId 一定在,只是你需要细心点才能看到

linuxea

2017-08-23 17:02

@JFinal 真的看到了。一个域名是jfinal.com,一个是www.jfinal.com。前面那个没有。怎么有两个东东呢