这三个对象的作用域和生命周期——从上往下依次递增: 上面最小,下面最大。
HttpServletRequest是生命周期最短的一个对象。
当一个请求送往tomcat时,这个请求就被创建了。当servlet处理完后,产生了响应并且返回给浏览器,则当前请求对象就会被销毁。
可以说request对象是一个瞬时对象,用完就抛弃。
Session对象叫做用户会话对象,用于保存与浏览器窗口所对应的数据。
Session对象是用户第一次发来请求时被创建的,默认情况下如果Session有30分钟没有被访问,那么这个Session对象就会被销毁。
相对来说更加持久的就是HttpSession对象,保存与浏览器所对应的数据、生命周期比request大一些。
误解区:当我们直接关闭浏览器窗口时,Session对象依然存在,只是把浏览器中的Sessionid的cookie给抛弃了。其数据还在tomcat里,默认保留30分钟。
ServletContext对象解释:Servlet上下文对象,是web应用程序的全局对象。
一个Web应用程序只会创建一个ServletContext对象。
ServletContext随着Web应用程序启动而自动创建、在web应用程序重启或者关闭时会被销毁。
可以说Java Web应用程序的三大作用域对象会伴随着我们的开发从始至终。
因为作用域是从小到大依次递增的,为了程序维护的需要和资源避免浪费的情况、能用小作用域完成的功能就不要使用大的作用域、以后的开发中request将会是我们打交道最多的对象,至于Session和Context使用相对较少。
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2018 群英 版权所有 茂名市群英网络有限公司
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号-36 粤公网安备 44090202000006号 粤工商备P091701000595