关于session的一点认识~

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于session的一点认识~相关的知识,希望对你有一定的参考价值。

1.什么是Session

Session是服务器端的缓存技术,它是基于内存的,可以用来保存针对每个用户的相关数据。

 

换句话说:程序员可以通过session,把以后还会用到的数据放到服务器内存中。

这些数据可以按照不同的用户来分类,用户A和用户B的数据会放在不同的session对象中。

 

2.Session的生命周期

session由服务器创建,当后端程序调用getSession(true)的时候,session才可能会被创建(当请求中携带有JSessionId时,不会创建)

当然,如果程序从头到尾都没有调用这句话,那么session就不会被创建。

比如:当用户访问web项目根目录下的一个静态html页面的时候(与web-info同级的页面),服务器是不会为用户创建session的。

 

这里面有两个问题需要说明一下:

一.getSession()、getSession(true)和getSession(false)的区别

getSession()和getSession(true)是一样的,意思是:若当前会话在服务器中没有对应session的时候,则为当前会话创建一个session,并返回新建的session对象的引用。

getSession(false)则不是这样:若当前会话在服务器中没有对应session,则返回null,并不会创建session对象。

直接上图:

技术分享

二.当我们访问jsp页面的时候。

 

3.服务器如何区分不同用户的session

 

 

4.Session的操作

以上是关于关于session的一点认识~的主要内容,如果未能解决你的问题,请参考以下文章

关于如何保证用户唯一性的一点想法

浏览器 cookie 和 session 的认识

Flask 中的 session 的故事

关于Java web中request response session context的知识详述

Cookie和Session

关于session