jsp九大内置对象和四大作用域

out:代表输出流的对象。作用域为page


request:主要用于接收客户端通过HTTP协议连接传输到服务器端的数据,通常是HttpServletRequest的


子类,当客户端请求jsp网页时,客户端的请求信息将被jsp引擎封装在request对象中,通过request对


象调用相应的方法便可获取用户提交的信息。作用域为request


response:此对象封装了返回到HTTP客户端的输出,向页面作者提供设置响应头标和状态码的方式。经


常用来设置HTTP标题,添加cookie,设置响应内容的类型和状态,发送HTTP重定向和编码URL。作用域为


page


pageContext:作用域为page。此对象提供所有四个作用域层次的属性查询和修改能力,


它也提供了转发请求到其它资源和包含其他资源的方法


session:主要用于跟踪对话。作用域session。
大多数现代的服务器端技术都将信息保留在服务器上,只在浏览器和服务器之间传递标识符,这就是会


话跟踪,当浏览器第一次请求某个特定应用程序中的某个jsp页面时,session就开始了,直到与服务器


断开连接为止,session才结束


application:servlet的环境通过调用getServletConfig().getContext()方法获得。作用域是


application。它提供了关于服务器版本,应用级初始化参数和应用内资源绝对路径


,注册信息的方式,application与session相似,不同的是application对象由所有用户共同使用,例如


网站中当前在线用户的数量,在所有客户浏览器都上都应该能显示,服务器启动后,就会自动创建


application对象,application对象由服务器创建,也由服务器自动清除,不能由用户创建和清除


config:作用域为page


exception:通过JSP错误页面中一个catch块已经益出但没有捕获的java.lang.Throwable的任意实例,传


向了errorPage的URI。作用域为page。注意exception只有在page指令中具有属性


isErrorPage="true"时才有效。


page:指向页面自身的方式。作用域为page


JSP中九大内置对象为: 
request            请求对象                 作用域 request
response          响应对象                   作用域  page
pageContext    页面上下文对象                作用域    page
session            会话对象                  作用域    session
application       应用程序对象               作用域    application
out                   输出对象               作用域    page
config              配置对象                 作用域    page
page               页面对象                  作用域    page
exception        例外对象                    作用域    page




四大作用域:(page,request,session,application)


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都是完全隔离的,无论如何修改都不会影响其他人的数据。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值