码迷,mamicode.com
首页 > 其他好文 > 详细

【tomcat】sessionId学习(未完待续)

时间:2018-10-22 23:18:13      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:href   一个   log   目的   iter   存储   hashmap   客户   方式   

  这里主要研究tomcat中session的管理方式以及sessionId的原理,下文将研究sessionid存到redis中以及基于redis以及redis实现session共享。

  平时也就是了解session是基于cookie实现的,cookie是保存在客户端,而session是保存在服务端,对其原来也没有深入理解。下面将深入理解。

1.什么是session

  对Tomcat而言,Session是一块在服务器开辟的内存空间,其存储结构为ConcurrentHashMap;

 

2.Session的目的

Http协议是一种无状态协议,即每次服务端接收到客户端的请求时,都是一个全新的请求,服务器并不知道客户端的历史请求记录;

Session的主要目的就是为了弥补Http的无状态特性。简单的说,就是服务器可以利用session存储客户端在同一个会话期间的一些操作记录;

 

3.简单的研究session的创建时机

   我们知道request.getSession(boolean create)   获取session,并根据参数动态的获取session,如果传的参数是true的话不存在session就创建一个并返回一个session;如果传false,不存在session也不会创建,如下代码:

throws ServletException, IOException {
        HttpSession session = request.getSession(true);// 传true会创建一个并返回,false不会创建
        PrintWriter writer = response.getWriter();
        if (session == null) {
            writer.write("null");
        } else {
            writer.write(session.toString());
        }
    }

 

 

查看grequest.etSession(boolean create)的源码并分析:

 

 

 

 

 

参考:http://www.cnblogs.com/chenpi/p/5434537.html

 

【tomcat】sessionId学习(未完待续)

标签:href   一个   log   目的   iter   存储   hashmap   客户   方式   

原文地址:https://www.cnblogs.com/qlqwjy/p/9833669.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!