session也就是会话,所有web项目都有,大家也都在用,印象最深的是学生时代刚学到这块的时候,用session保存用户,页面判断session是否有值,做登录控制。另外还有印象的就是购物车设计,当时书上是说将购买行为放session中,结账时候再取出来。
现在呢好像很多地方都在排斥session,集群头疼,同步很难,丢失难受。
放在JFinal看得出波总也不爱session,极力推荐cookie,用cookie代替session。
用户登录时生成唯一id,JFinal提供了内置生成方法SessionIdKit,将这id写到浏览器cookie中,加上超时时间,做的好一点可以记录到数据库。
用户下次再访问时候可通过全局权限拦截器,判断session是否存在,是否过期,这样就可以控制页面跳转,用户自动登录也就是这么来的。
至于前面说的将一些常用信息放置到session中,现在也有了其他做法,缓存其实是个好方案,普遍key-value存储,value类型多样化。
用户信息,字典这些都可以放缓存里面,设置个过期时间即可。