在实际开发中,我们需要控制一个用户在pc和app的同类型环境下只能登录一个,最多可以pc和app同时在线。
在单一的tomcat环境中,我们可以通过建立一个全局的map,存放用户名(id)+登录环境(APP或PC)和对应的session。按如下方法实现:
1、session里保存用户名id和登录方式。
2、每次用户登录的时候判断是否有重复的登录,有的话就将原来的session失效,没有就保存到map里。
3、监听session,在session destroy事件处理里负责根据session里的值找到对应的map里面的key-value键值对并将其删除。
但在多tomcat环境下,我们可以通过redis 实现tomcat的session的共享:
配置很简单,:
1、在context.xml里配置(注意不要在server.xml里配置)
<ValveclassName="com.orangefunction.tomcat.redissessions.Redi