pageContext、request、session、servletContext四大作用域的生命周期

pageContext

生命周期:
访问jsp创建pageContext对象,访问结束时销毁!
只能在当前jsp中产生效果
无法向其他页面传递参数(其他手法除外,当然其他手法和pageContext的关系也就不大了)


request

生命周期:
当从一个jsp发出一个request,即表明了这个request生命周期的开始,当到达action之后一般有两种处理request的方式,一种为request.getDispatcher.forward(请求转发),一种是response.sendRedirect(重定向).

请求转发:该request的生命周期将会继续延续下去,当采用forward如果到达JSP页面,那么之前从第一个JSP页面中发送出来的request的消息将仍然存在,新的页面同样能够取得该request里所包含的一些信息,比如之前的JSP发送request中所包含的参数信息.事实上,它们是同一个request.

重定向:那么该request的生命周期将结束.


session

生命周期:
session的作用范围为一次回话(例如:打开浏览器开始,会话开始关闭浏览器后,session并不会立刻消失,而是在一定的时间后消失,默认30分钟)【session具体的看我另一篇博客】


servletContext

生命周期:
服务器启动生成,服务器关闭结束


其实还有一个applciation的域,在spring中,也是贯穿全局的域对象

servletContext和application的区别

servletContext:
这个是来自于servlet规范里的概念,它是servlet用来与容器间进行交互的接口的组合,也就是说,这个接口定义了一系列的方法,servlet通过这些方法可以很方便地与自己所在的容器进行一些交互,比如通过getMajorVersion与getMinorVersion来获取容器的版本信息等. 从它的定义中也可以看出,在一个应用中(一个JVM)只有一个ServletContext, 换句话说,容器中所有的servlet都共享同一个ServletContext

applicationContext:
这个类是Spring实现容器功能的核心接口,它也是Spring实现IoC功能中最重要的接口,从它的名字中可以看出,它维护了整个程序运行期间所需要的上下文信息, 注意这里的应用程序并不一定是web程序,也可能是其它类型的应用. 在Spring中允许存在多个applicationContext,这些context相互之间还形成了父与子,继承与被继承的关系

更多精彩内容关注公众号????????????????:
pageContext、request、session、servletContext四大作用域的生命周期