1、用户(浏览器)向Web应用服务器发送第一次请求时,请求头部中不包含sessionID(session唯一标识),则服务器会为该客户端创建一个新的session,并生成一个与此session对应的sessionID,然后将sessionID随着本次响应返回给客户端;
2、用户(浏览器)再次向Web应用服务器发送请求时,请求头部包含sessionID,则服务器首先会通过sessionID找到对应的session,以确定是这个客户端访问服务器,此时sessionID不会再次随着本次响应返回给客户端;如果该session因超出时长而被Web服务器删除,则重新创建一个新的session,并生成一个与此session对应的sessionID,然后将sessionID随着本次响应返回给客户端;
客户端没有禁用cookie的情况下,客户端使用cookie保存sessionID。如果cookie禁用,则会自动转化为用URL-rewriting(URL重写,URL中包含sessionID)技术实现。
session常用方法
setAttribute:设置指定名字的参数值;session中保存的对象随Tomcat服务器正常关闭(通过shutdown.bat关闭)而保存到work文件夹相应目录中(Tomcat安装根目录\work\Catalina\localhost\XXX),随Tomcat的启动而重新使用。
getAttribute:获取指定属性的值,如果该属性值不存在则返回null;
removeAttribute:删除session中的一个属性
getId():获取sessionID
isNew():每个请求是否会产生新的session对象
setMaxInactiveInterval():设置停止操作后session对象的有效时间。