1. Session模型:
1) HTTP协议是无状态的,无法记录多次请求/响应之间的联系,而Session模型就好比一个中间人,可以帮助使用HTTP协议通信的双方记录每次通信的内容(即会话的内容),因此Session模型就是一种中间人模型,可以保存通信记录;
2) HttpSession对Session模型的实现:
i. 当客户端第一次请求服务器时服务器可以主动建立一个HttpSession对象专门用于记录该客户端和自己这一次,包括今后将要发生的多次,通信记录,建立HttpSession就是建立会话,这种会话(会话对象)可以长期保存;
ii. Web容器会为每个会话分配一个唯一的ID号,容器会将相关通信记录都保存在相应ID的会话对象中,并可以将这些会话对象长期保存在Web容器中(服务器端);
iii. 而Servlet响应客户端时只需要将相应会话的ID保存在Cookie中返回即可,而浏览器下次再请求时只需要凭Cookie中的会话对象的ID让Web容器调出保存在其中的会话对象即可;
3) 大致模型就是:
客户端(Cookie:Session ID) <====> 服务器端(很多Session对象)
!服务器根据客户端请求Cookie中的Session ID调出保存在Web容器中相应的Session对象,然后取出对象中保存的前几次通信的记录并利用!
2. 使用HttpSession的基本流程: