客户端不关闭,服务器关闭后,两次获取的session不是同一个,但是要确保数据不丢失。tomcat自动完成以下工作
* session的钝化:
* 在服务器正常关闭之前,将session对象序列化到硬盘上
* session的活化:
* 在服务器启动后,将session文件转化为内存中的session对象即可。
【注意:在idea中的使用tomcat不能完成该操作,必须使用tomcat自己的命令来执行】
1、首先将下列代码执行一遍 可以使用本地tomcat也可以使用idea工具,为了得到编译后的项目。
2、在C:\Users\Administrator\IdeaProjects\session\out\artifacts路劲中【项目输出文件】,复制当前的session_war_exploded并且改名为session【名字任意,此处为了简化操作】
3、将上面的文件夹复制到H:\HProgram Files\tomcat\apache-tomcat-9.0.31\webapps下
4、使用本地tomcat命令startup.bat启动tomcat
5、启动之后在浏览器中输入SessionServlet4路径
6、发现输出了我们之前代码中存储的session数据“hello session”
7、接着使用命令关闭tomcat 一定要使用shutdown.bat正常关闭
8、关闭后发现在H:\HProgram Files\tomcat\apache-tomcat-9.0.31\work\Catalina\localhost\session路径下立刻多出一个SESSIONS.ser文件,该文件就是所谓的“钝化”操作。
9、此时服务器已经是关闭的状态了,我们想要验证服务器关闭,客户端不关闭,在二次访问服务器时依然能拿到session数据的“活化”操作,只需再次双击startup.bat启动tomcat即可,发现启动好了之后,SESSIONS.ser文件立马消失【数据重新被加载进内存】
10、至此,验证结束。