Tomcat的Session管理机制

一、Session使用原理

请求过程中的session操作:

(1)首先要解析请求中的sessionId信息,然后将sessionId存储到request的参数列表中。

(2)然后再从 request获取session的时候,如果存在sessionId那么就根据Id从session池中获取session,如果sessionId不存在或者session失效,那么则新建session并且将session信息放入session池,供下次使用。

二、重写session

1.在默认的情况下Tomcat的Session管理,如果不进行设置的话是由Tomcat自带的StandardManager类进行控制的。

2.通过自定义Manager, 重写的就是org.apache.catalina.session.ManagerBase(StandardManager)里边的具体写的操作,比如add、findSession、createEmptySession、remove等方法,并将对session的增删改查操作指向了对Redis数据存储的操作。

三、代码实例

public class RedisManager extends StandardManager {
    @Override
    //调用request.getSession()时,先调用findSession,如果没有获取session信息,调用createSession创建session
    public Session findSession(String id) throws IOException {
      if (id == null)
            return null;
        return SessionUtil.getSessionFromRedis(sessions, id, this);
    }

    @Override
    public Session createEmptySession() {
        return SessionUtil.createEmptySession(this);
    }

}

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值