为了账号安全,请及时绑定邮箱和手机立即绑定

读取多次session,求解答


不知道是哪里有逻辑错误,我的代码:启动tomcat到登录页面的时候会读取好多次session,并且把我oracle数据库中的三条用户数据都保存到redis里面去了,求大神指点

为了找错误 我在控制台输出的一些信息如下:

RedisSessionDao的doCreate中输出create session

https://img1.sycdn.imooc.com//5c40b99b0001a0b811260505.jpg

CustomSessionManager中输出很多。。看代码吧
@Override
protected Session retrieveSession(SessionKey sessionKey) throws UnknownSessionException {

    Serializable sessionId = getSessionId(sessionKey);
    ServletRequest request = null;
    if (sessionKey instanceof WebSessionKey) {
        request = ((WebSessionKey) sessionKey).getServletRequest();
    }

    //从request中取
    if (request != null && sessionId != null) {
        System.out.println("从request中取Session");
        Session session = (Session) request.getAttribute(sessionId.toString());
        if (session != null) {
            return session;
        }
    }

    //request中取不到再到redis数据库中取
    Session session = super.retrieveSession(sessionKey);
    System.out.println("从redis数据库中取出Session");
    if (request != null && sessionId != null) {
        System.out.println("将从redis数据库中取出的Session保存到request中");
        request.setAttribute(sessionId.toString(), session);
    }
    return session;
}

数据库中的用户数据:

https://img1.sycdn.imooc.com//5c40ba3c0001c9e708980403.jpg

启动tomcat后redis中就有数据了,我猜是数据库中读取过去的

https://img1.sycdn.imooc.com//5c40ba870001ee7104160271.jpg

重点来了!结果。。输出了这么多,我完全乱了。。。

从redis数据库中取出Session

create session

从request中取Session

read session

从redis数据库中取出Session

将从redis数据库中取出的Session保存到request中

从request中取Session

read session

从redis数据库中取出Session

将从redis数据库中取出的Session保存到request中

从request中取Session

从request中取Session

从request中取Session

从request中取Session

从request中取Session

从request中取Session

从request中取Session

从request中取Session

从request中取Session

从request中取Session

从request中取Session

从redis数据库中取出Session

create session

从request中取Session

read session

从redis数据库中取出Session

将从redis数据库中取出的Session保存到request中

从request中取Session

read session

从redis数据库中取出Session

将从redis数据库中取出的Session保存到request中

从request中取Session

从request中取Session

从request中取Session

从request中取Session

从request中取Session

从request中取Session

从request中取Session

从request中取Session

从request中取Session

从request中取Session

从request中取Session

18-Jan-2019 01:19:19.838 信息 [http-nio-9090-exec-3] org.apache.tomcat.util.http.parser.Cookie.logInvalidHeader A cookie header was received [1547527730,1547532629,1547638884; JSESSIONID=83d3b4e6-313e-4f57-b345-2aae19e7eee6] that contained an invalid cookie. That cookie will be ignored.Note: further occurrences of this error will be logged at DEBUG level.

从request中取Session

read session

create session

从request中取Session

read session

从redis数据库中取出Session

将从redis数据库中取出的Session保存到request中

从request中取Session

read session

从redis数据库中取出Session

将从redis数据库中取出的Session保存到request中

从request中取Session

从request中取Session

从request中取Session

从request中取Session

从request中取Session

从request中取Session

从request中取Session

从request中取Session

从request中取Session

从request中取Session

从request中取Session










正在回答

举报

0/150
提交
取消

读取多次session,求解答

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信