【正确答案】(1)内置对象
在JSP中,内置对象又称为隐含对象,是指在不声明和创建的情况下就可以被使用的一些成员变量。JSP一共提供有9个内置对象,分别是request(请求对象)、response(响应对象)、pageContext(页面上下文对象)、session(会话对象)、application(应用程序对象)、out(输出对象)、config(配置对象)、page(页面对象)与exception(例外对象)。其具体的描述见下表。
内置对象
|
名 称
|
描 述
|
request
|
客户端请求,此请求包含来自GET/POST请求的参数。客户端的请求信息被封装在request对象中,通过它才能了 解到客户的需求,然后做出响应,因此,request对象是用来获取请求参数的:作常重要途径。它是HttpServletRequest 类的实例
|
response
|
用来表示服务器端对客户端的响应,将Web服务器处理后的结果返回给客户端。但在JSP中很少直接使用到它。它 是HttpServletResponse类的实例
|
pageContext
|
提供了对JSP页面所有的对象及命名空间的访问,也就是说,用它可以访问到本页面中所有其他的对象,例如前面 已经描述的request、response,以及后面要介绍的session和application对象等。它的本类名也叫pageContext
|
SeSSlon
|
用来表示客户端与服务器的一次会话。从客户端与Web服务器建立连接的时候会话开始,直到关闭浏览器时结束会 话。它是HttpSession类的实例
|
application
|
代表JSP所属的Web应用本身。application对象可以存放全局变量,因此,可以实现用户间的数据共享。它的生命 周期与服务器的生命周期一致,也就是说,当服务器启动后,这个对象被创建出来,直到服务器停止后这个对象的生 命周期才结束。在任何地方对此对象属性的操作,都将影响到其他用户对此的访问。它是ServletContext类的实例
|
out
|
用于在客户端浏览器内输出信息。它是JspWriter类的实例
|
config
|
主要作用是取得服务器的配置信息。当一个Servlet初始化时,容器把某些信息通过config对象传递给这个Servlet, Servlet可以使用这个对象获取所需的配置信息
|
page
|
表示当前JSP页面,类似于Java语言中的this指针。它是java.lang.Object类的实例
|
exceptmn
|
用来表示异常。当一个页面在运行过程中发生了例外,就会产生这个对象。如果JSP需要使用这个对象就必须把 isErrorPage设为true,否则无法编译。它是java.lang.Throwable的对象
|
根据它们作用的不同,可以将以上九个内置对象分为四类:第一类,与Servlet有关的page和config;第二类,与Input/Output有关的out、request和response;第三类,与Context有关的application、session和pageContext;第四类,与Error有关的exception。
(2)内置动作
JSP使用动作来实现动态地插入文件、实现重定向和对JavaBean的引用等功能。它一共有6个基本动作:jsp:include、jsp:useBean、jsp:setProperty、jsp:getProperty、jsp:forward与jsp:plugin。以下将分别对这些动作进行具体介绍。
jsp:include:用来在页面被请求的时候引入一个文件。include指令是在JSP文件被转换成Servlet的时候引入文件,而jsp:include插入文件的时间是在页面被请求的时候,而且被引用文件不能包含某些JSP代码(例如不能设置HTTP头)。使用示例如下:
<jsp:include page="test.jsp"flush="true">
<jsp:param name="name"value="value"/>
</jsp:include>
以上代码表示在当前文件中可以引入test.jsp文件。
jsp:useBean:用来寻找或者实例化一个JavaBean。它使得开发人员既可以发挥Java组件重用的优势,同时也避免了损失JSP区别于Servlet的方便性。使用示例如下:
<jsp:useBean id="car"scope="session"class="com.Car">
以上代码表示实例化了一个com.Car类的实例。
jsp:setProperty:用来设置已经实例化的Bean对象的属性。使用示例如下:
<jsp:setProperty name="car"property="colour"value="red"/>
以上代码用来设置名字为car的实例的colour属性为red。
jsp:getProperty:用来获取某个JavaBean的属性。使用示例如下:
colour=<jsp:getProperty name="car"property="colour"></jsp:getProperty>
以上代码用来获取名字为car的实例的colour属性。
jsp:foward:用来把请求转到一个新页面。使用示例如下:
<jsp:forward page="/Servlet/login"/>
以上代码把当前页面重定向到/Servlet/login来处理。
jsp:plugin:用于在浏览器中播放或显示一个对象。使用这个动作能插入所需的特定浏览器的OBJECT或EMBED元素来指定浏览器运行一个JAVA Applet所需的插件。使用示例如下:
<jsp:plugin type="applet"codebase="/ch5"code="Hello.class"height="40"width="320">
以上代码用来在浏览器中运行一个applet插件。