JSP的四大作用域

来源:互联网 发布:ios 分页加载数据 编辑:程序博客网 时间:2024/04/30 03:37

1、pageContext(page):

生命周期:随着JSP页面被访问时创建,访问结束后被销毁.

作用范围:当前页面.

作用:在整个JSP页面共享数据.

这个作用域里的变量 只要页面跳转了,它们就不见了。如果把变量放到pageContext里,就说明它的作用域是page,它的有效范围只在当前jsp页面里。从把变量放到pageContext开始,到jsp页面结束,你都可以使用这个变量。


2、request:

生命周期:请求开始创建代表请求的request对象,请求响应结束request对象销毁.

作用范围:整个请求链.

作用:在整个请求链上共享数据.

这个作用域里的变量可以跨越forward前后的两页。但是只要刷新页面,它们就重新计算了。如果把变量放到request里,就说明它的作用域是request,它的有效范围是当前请求周期。 所谓请求周期,就是指从http请求发起,到服务器处理结束,返回响应的整个过程。在这个过程中可能使用forward的方式跳转了多个jsp页面,在这些页面里你都可以使用这个变量。


3、Session:

生命周期:会话开始request.getSession()创建Session.当Session三十分钟没人用销毁或者调用invalidate方法销毁或者服务器非正常关闭Session销毁.

作用范围:整个会话.

作用:在整个会话范围内共享数据.

这个作用域和application里的变量一直在累加,开始还看不出区别,只要关闭浏览器,再次重启浏览器访问这页,session里的变量就重新计算了。 如果把变量放到session里,就说明它的作用域是session,它的有效范围是当前会话。 所谓当前会话,就是指从用户打开浏览器开始,到用户关闭浏览器这中间的过程。这个过程可能包含多个请求响应。也就是说,只要用户不关浏览器,服务器就有办法知道这些请求是一个人发起的,整个过程被称为一个会话(session),而放到会话中的变量,就可以在当前会话的所有请求里使用。


4、ServletContext(application):

生命周期:随着WEB应用的加载而创建,随着WEB应用的销毁而销毁(WEB应用被移除出容器或者服务器关闭).

作用范围:整个WEB应用

作用:在整个WEB应用内共享数据.

这个作用域的变量一直在累加,除非你重启tomcat,否则它会一直变大。如果把变量放到application里,就说明它的作用域是application,它的有效范围是整个应用。 整个应用是指从应用启动,到应用结束。我们没有说“从服务器启动,到服务器关闭”,是因为一个服务器可能部署多个应用,当然你关闭了服务器,就会把上面所有的应用都关闭了。 application作用域里的变量,它们的存活时间是最长的,如果不进行手工删除,它们就一直可以使用。



九大内置对象和四大作用域的关系:

request 请求对象  类型 javax.servlet.ServletRequest 作用域 Request

response 响应对象 类型 javax.servlet.SrvletResponse 作用域 Page

pageContext 页面上下文对象 类型 javax.servlet.jsp.PageContext 作用 域 Page  
 
session 会话对象 类型 javax.servlet.http.HttpSession 作用域 Session

application 应用程序对象 类型 javax.servlet.ServletContext 作用域 Application   

out 输出对象 类型 javax.servlet.jsp.JspWriter 作用域 Page  
 
config 配置对象 类型 javax.servlet.ServletConfig 作用域 Page  
 
page 页面对象 类型 javax.lang.Object 作用域 Page  
 
exception 例外对象 类型 javax.lang.Throwable 作用域 page 
0 0
原创粉丝点击