这里主要讲解的是HttpServletRequest request.getSession()方法
session在我之前的理解中就是一个存储一些缓存内容使用的但事实session的使用时很广泛的。
这里简单说一些session的创建和由来
session的创建是因为客户端的一个申请使用了rquest.getSession(boolean b)
这时服务端会为你(申请开辟session内存空间的客户)创建一个session的内存空间
并且会把request.getSession().getId()在响应头中的cookie内给你返回。可以看图片
这是客户端的请求
这是服务端的响应
明显我们能在响应头的Set-Cookie中找到JSESSIONID
这个就是request.getSession().getId()的值
并且我们在此向这个服务器发送请求的时候都会在请求头的Cookie中把JSESSIONID=AC48B7961652A7BC946BF735086CE7CA发送给服务器
如图
这样我们再次使用request.getSession()时候他会JSESSIONID=AC48B7961652A7BC946BF735086CE7CA优先查看你的请求头中的Cookie是否有JSESSIONID=AC48B7961652A7BC946BF735086CE7CA,在没有的情况会为你创建一个Session内存,如果有的话服务器会用 JSESSIONID=AC48B7961652A7BC946BF735086CE7CA直接找到你的session这样可以方便服务器的操作提升性能.所以在创建session之后我们每次的请求头内都会有SessionID
这里在说一些
Request.getSession(Boolean b)
这里的boolean变量的使用:
1.当我们不传入时候会默认位true,这样我们长时间不访问服务器时候,session会消亡。这是你请求头中的SessionId会失效查找不到对应的session,服务器还会为你再次创建一个session内存,并且把session在响应头中给你传递回去。
2.当我们传入的是false,我们访问服务器时候session消亡了,这里服务器不会再次为你创建session,他只会在你请求头中没有sessionId的情形下为你创建一次session内存空间。