题外话
本来这篇笔记不应该放在这个笔记本组(浏览器)里的,因为Session是服务端的东西,可是Cookie和Session它们俩是密切相关的。提起Cookie那么Session必提,提起Session,Cookie必提。所以为了方便就全部放在这个名为浏览器的笔记本组里了。
和Cookie一样,之前对Session的认识就只会说,Session是在服务端,Cookie在客户端,然后巴拉巴拉的说一大堆Session和Cookie的概念,其实压根就没有用过,只会死背概念罢了
这里来讲一下,现在我对Session的理解,以及用法,全文中的request指的就是HttpServletRequest。
Session和Cookie一样,都是服务器校验客户端的凭证,不过Cookie是客户端自己“带”过来的,而Session是就在服务端产生的,Session中的属性和相应值是键值对的存储方式。
对二者的理解可以打个比方说明:
Cookie相当于客人(客户端)带上主人(服务端)发的请柬去主人家里蹭吃蹭喝
Session相当于客人(客户端)“直接”来主人家(服务端)蹭吃蹭喝,但是主人家里需要拿出可蹭吃蹭喝的“人员名单”来校验,看该客人是否在名单上。
和Cookie一样,Session是服务端产生的,产生之后保存在服务端里的一块内存块(每个客户都有一个,相互之间不共享)
客户端在第一次访问服务器的时候,通过request.getSession(true)或request.getSession()生成Session,同时生成一个名为JSESSIONID(只限于tomcat容器)的Cookie(这个是服务端自动生成的,底层封装好了的)
显而易见的,Session的作用和Cookie一样,都是用于标识客户端的,来识别客户端的一种手段。
例子:
不做特殊说明的话,下面的属性中的get和set方法是相对应的,有这个属性的set方法,就有这个属性的get方法。
客户端与服务端停止交互的时间叫做超时时间,默认的超时时间是30分钟
还有常见的:
原文:https://www.cnblogs.com/xm970829/p/12981228.html