JSP内置对象——九大内置对象简介与四种作用域范围以及Web程序的请求和响应模式

  最近在学习JSP相关基础知识,我们都知道JSP当中存在一组不使用new关键字就可以在脚本和表达式中使用的对象,在Web开发中经常使用。为了能更好的理解这些对象,在此对JSP内置对象作一些归纳。

目录:

JSP内置对象——九大内置对象简介与四种作用域范围以及Web程序的请求和响应模式

JSP内置对象——out(待更新)

JSP内置对象——request/response(待更新)

JSP内置对象——session(待更新)

JSP内置对象——application(待更新)

JSP内置对象——其他内置对象(待更新)

 

内置对象简介:

我们说,JSP内置对象是Web容器创建的一组对象,不使用new关键字就可以使用的对象。

例如下面看到的这段脚本:我们在for循环中直接使用了out对象来给浏览器打印输出,这是一个JSP内置对象,并没有使用new来创建。

  <%
     String[] value = {"hello","world","ok"};
     for(String s : value){
        out.println(s+"<br>");         
     }
   %>

 

接下来我们来看一下,JSP究竟有哪些内置对象?

JSP总共有九大内置对象,常用的有:out,request,response,session,application这五个,不常用的有:page,pageContext,exception,config这四个

这里先简单的了解一下这些对象,后面会有详细的博客来分别介绍

内置对象 代表内容 作用域
out 输出对象 page
request 请求对象 request
response  响应对象  page
session  会话对象  session 
application  应用程序对象  application 
page  页面对象  page 
pageContext  页面上下文对象  page 
exception  里外对象  page 
config 配置对象  page 

 

 

 

 

 

 

 

 

 

 

每个内置对象都有一个作用域范围,总共包括四种作用域:page,request,session,application

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

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

session里的变量一直在累加,开始还看不出区别,只要关闭浏览器,再次重启浏览器访问这页,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都是完全隔离的,无论如何修改都不会影响其他人的数据。

在详细介绍JSP内置对象之前,先说一下Web程序的请求和响应模式:

用户(客户端)发送请求(request)

服务器给用户响应(response)

通过上图可以看出,当用户连接互联网去访问Web服务器的时候,就相当于他给Web服务器发了一个Http请求,然后服务器对用户的请求作出了一个响应,那么这就是一种请求与响应模式。

下面举个登陆程序的例子说明Web应用程序的请求和响应模式:

比方说我们要登录博客园,登录页面用户需要输入用户名和密码,然后点击登录按钮,实际上就相当于客户端给服务器发送了一个请求,在这个请求对象中封装了用户提交的用户名和密码。当这个请求发送给服务器之后,服务器就接收到用户的请求,然后判断用户提交的用户名和密码是否合法,如果该用户是合法用户,服务器就给客户端发送一个响应页面,如下图所示:

当然,如果该用户非合法用户,则提示错误信息。

那么这个例子就很好的说明了咱们的Web应用程序是基于请求和响应模式的,下一节我将详细的介绍out对象和它的常用方法以及一些案例。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。