session对象:
Web应用中,会话指在一段时间内,一个用户通过浏览器与服务器之间进行的一系列的请求和响应的交互过程。在一个会话中,用户可以访问该Web应用系统中包括网页在内的多种资源。
当用户(浏览器)向Web应用服务器发送第一次请求时,服务器会为该用户创建一个唯一标识的会话,会话一直延续到访问结束(浏览器关闭或用户长时间不访问Web应用)。JSP使用session对象表示会话,即将信息保存在session对象中,方便用户在这个会话中随时获取。
浏览器关闭只是中断了和Web服务器的联系,但是session对象依然存在服务器端,如果时间超时,则Web服务器将其删除,如果服务器正常关闭,则将对象序列化到SESSIONS.ser文件内,服务器重新启动,则将该文件中session对象重新反序列化。
演示:
1、利用Tomcat正常开始一个web项目
2、stop项目,生成SESSIONS.ser文件
3、再次start项目,SESSION.ser文件消失
session(会话)运行机制
1、用户使用浏览器向Web应用服务器发送一次请求,服务器会创建一个session会话
2、第一种情况,用户请求中不包含sessionID,则服务器会为该session会话创建一个全球唯一sessionID,然后将sessionID随着本次响应返回给客户端(浏览器)。(用户的第一次请求不含sessionID,需要服务器创建新的sessionID)
3、第二种情况,用户请求中包含sessionID,则服务器首先会通过sessionID找到相对应的session会话,以确定是这个客户端访问服务器,此时sessionID不会再次随着本次响应返回给客户端(用户的再次请求会包含sessionID)。
4、如果一个session因为超出时长而被Web服务器删除,则重新创建一个新的session和一个新的sessionID,此sessionID会随着本次响应返回给客户端。
5、客户端没有禁用cookie的情况下,客户端使用cookie保存sessionID。如果cookie禁用,则会自动转化为用URL-rewriting(URL重写,URL中包含sessionID)技术实现。