JSP九大内置对象及四个作用域

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

“exception” 对象则代表了JSP文件运行时所产生的例外对象,此对象不能在一般JSP文件中直接使用,而只能在使用了“<%@ page isErrorPage="true "%>”的JSP文件中使用。

何为作用域

  先让我们看看效果:

  大概流程是这样的,我们访问index.jsp的时候,分别对pageContext, request, session,application四个作用域中的变量进行累加。(当然先判断这个变量是不是存在,如果变量不存在,则要把变量初始化成1)。计算完成后就从index.jsp执行forward跳转到test.jsp。在test.jsp里再进行一次累加,然后显示出这四个整数来。

  从显示的结果来看,我们可以直观的得出结论:

  page里的变量没法从index.jsp传递到test.jsp。只要页面跳转了,它们就不见了。

  request里的变量可以跨越forward前后的两页。但是只要刷新页面,它们就重新计算了。

  session和application里的变量一直在累加,开始还看不出区别,只要关闭浏览器,再次重启浏览器访问这页,session里的变量就重新计算了。

    application里的变量一直在累加,除非你重启tomcat,否则它会一直变大。

作用域规定的是变量的有效期限

  如果把变量放到pageContext里,就说明它的作用域是page,它的有效范围只在当前jsp页面里。

  从把变量放到pageContext开始,到jsp页面结束,你都可以使用这个变量。

  如果把变量放到request里,就说明它的作用域是request,它的有效范围是当前请求周期。

  所谓请求周期,就是指从http请求发起,到服务器处理结束,返回响应的整个过程。在这个过程中可能使用forward的方式跳转了多个jsp页面,在这些页面里你都可以使用这个变量。

  如果把变量放到session里,就说明它的作用域是session,它的有效范围是当前会话。

  所谓当前会话,就是指从用户打开浏览器开始,到用户关闭浏览器这中间的过程。这个过程可能包含多个请求响应。也就是说,只要用户不关浏览器,服务器就有办法知道这些请求是一个人发起的,整个过程被称为一个会话(session),而放到会话中的变量,就可以在当前会话的所有请求里使用。

  如果把变量放到application里,就说明它的作用域是application,它的有效范围是整个应用。

  整个应用是指从应用启动,到应用结束。我们没有说“从服务器启动,到服务器关闭”,是因为一个服务器可能部署多个应用,当然你关闭了服务器,就会把上面所有的应用都关闭了。

  application作用域里的变量,它们的存活时间是最长的,如果不进行手工删除,它们就一直可以使用。

  与上述三个不同的是,application里的变量可以被所有用户共用。如果用户甲的操作修改了application中的变量,用户乙访问时得到的是修改后的值。这在其他scope中都是不会发生的,page, request,session都是完全隔离的,无论如何修改都不会影响其他人的数据。


转载自:http://blog.csdn.net/zhangzeyuaaa/article/details/44560921

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JSP(Java Server Pages)是一种基于Java语言的服务器端网页开发技术,其中包括九大内置对象和四大作用域九大内置对象是指在每一个JSP页面中,系统自动为开发者创建的九个对象,分别是: 1. request对象:用于获取HTTP请求的信息,如请求参数、请求头等。 2. response对象:用于设置HTTP响应的信息,如设置返回的内容、重定向等。 3. out对象:用于向客户端输出内容,可以通过该对象在页面中生成动态内容。 4. session对象:用于存储用户的会话信息,可以在不同的页面和请求之间共享数据。 5. application对象:用于存储全局的应用程序数据,可供所有用户访问。 6. config对象:用于获取当前JSP页面的配置信息,如JSP的初始化参数等。 7. page对象:代表当前JSP页面本身,可以用于调用页面的方法或属性。 8. exception对象:用于处理JSP页面中的异常,可以获取异常的相关信息。 9. pageContext对象:包含了对其他八个内置对象的引用,可用于简化代码的编写。 四大作用域是指在JSP中定义的存储数据的范围,分别是: 1. page作用域:数据的作用范围限定在当前JSP页面,即页面级别的作用域。 2. request作用域:数据的作用范围限定在一次HTTP请求与响应过程中,可供同一请求中的不同页面共享。 3. session作用域:数据的作用范围限定在用户的整个会话过程中,可供不同请求和页面共享。 4. application作用域:数据的作用范围限定在整个Web应用程序中,可供所有用户和所有请求共享。 通过合理的使用这九大内置对象和四大作用域,可以方便地处理页面间的数据传递和数据共享,提高JSP网页开发的效率和灵活性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值