文档库 最新最全的文档下载
当前位置:文档库 › 第二章 JSP技术基础

第二章 JSP技术基础

JSP页面构成

JSP页面是通过在HTML语言中嵌入Java语句(脚本)来实现的。一个JSP页面由二大部分元素组成:

HTML元素:可以是HTML标签、JavaScript脚本、CSS层叠样式表等。

JSP元素:有指令标识、脚本标识、注释标识、动作标识等,在脚本标识里还可以使用JSP的内置对象。

1.指令标识

<1>全局指令page

page指令用于对JSP文件中的全局属性进行设置。page指令只能当前页有效,除了import属性之外,其它属性在一个页面中只能设置一次。

<2>文件引用指令include

include指令的目的是减少页面代码冗余。

文件page.jsp:

<3>标签指令taglib

下面给出一个简单的例子:

2.脚本标识

<1>程序标识

在JSP页面中,程序也称为“小脚本”,这些小脚本可以是任意的Java代码。

下面给出一个简单的例子:

<2>表达式标识

表达式标识的作用是向页面输出一个表达式的值,它等价于out.println()。

下面给出一个简单的例子,它可以完成前述例子中的相同功能:

<3>声明标识

使用小脚本标识和表达式标识所定义的是嵌入的Java语句,但是它不能声明方法,它所定义的变量仅仅是局部变量,如果要声明方法或成员方法,就必须使用声明标识,这些方法和成员变量将在小脚本和表达式中使用。

3.注释标识

<1>HTML注释

注释内容不会在用户的浏览器中显示,但是注释的内容会以源代码的方式传输到用户端,用户可以通过查看源代码的方式看到注释的内容。一般不建议使用。

<2>JSP注释

注释内容不会在用户的浏览器中显示,也不会以源代码的方式传输到用户,用户无论如何是看不到这类注释的。

<3>脚本注释

由于JSP是将脚本运行的结果传送到客户端,因此脚本注释不会以源代码的方式传输到用户,用户无论如何是看不到这类注释的。

4.动作标识

Java语言是一种通用的语言,在JSP中是作为一种嵌入式的语言使用的,在JSP层次上还需要一些语句来定义JSP的动作,这就是动作标识。它采用严格的XML标签语法,嵌入在JSP文件中。

<1>转发页面

只有一个动作:formward

下面是二个例子:

第一个例子是直接转向/util/errorPage.jsp页面,而第二个例子是先将要转向的页面保存在一个Java变量中,然后再输出到forward 的page 参数中.

<2>包含文件或资源

只有一个动作:include。

flush属性指定在将页面包含进来之前是否清空主页面的输出流,默

认值为false。

include动作与include指令的区别

<3>使用javabean

这类动作包括三个,后二者用于获取和设置JavaBean的属性。

简单地说,Javabean是一个符合一定规范的类,在这个类中定义了一系列的getters和setters方法。在传统的编程中,函数调用时常常需要提供参数,函数结束时常常返回运行结果。而在使用Javabean时,调用方在调用Javabean的方法前,通过设置需要的参数,此时Javabean通过相应的setters方法接收传入的参数;调用方在调用Javabean的方法后,通过获取方法的运行结果,此时JavaBean通过相应的getters方法将结果输出到调用方

<4>处理插件

此处插件是指在客户端运行的代码。如Java applet包括下述三个动作:处理applet或bean两种插件。

:向插件提供参数,使用设置每个参数。:定义当浏览器不支持插件时显示的内容。

例:

内置对象

1.Response

其内置对象中最常用的方法是sendRedirect()。它与forward动作有很相似功能!

区别:<1>.forward重定向是在容器内部实的同一个Web应用程序的重定向,所以forward方法只能重定向到同一个Web应用程

序中的一个资源,重定向后浏览器地址栏URL不变,而

sendRedirect方法可以重定向到任何URL,因为这种方法是修

改HTTP头来实现的,重定向后浏览器地址栏URL改变为新

的UR。2. forward重定向将原始的HTTP请求对象(request)

从一个servlet实例传递到另一个实例,而采用sendRedirect方

式则不能传递,因为两者不是同一个application。

<2>. forward重定向将原始的HTTP请求对象(request)从一

个servlet实例传递到另一个实例,而采用sendRedirect方式则

不能传递,因为两者不是同一个application。

<3>. 基于第二点,参数的传递方式不一样。

<4>. sendRedirect能够处理相对URL,自动把它们转换成绝对

URL,如果地址是相对的,没有前导'/',那么Web容器就认为它是相对于当前的

2. session

session在页面之间传递用户相关的信息,可以理解为是作用域范围为整个应用程序的用户相关的变量,这些信息保存在内存中(以session ID作为标识),直到用户离开(用户在客户端关闭浏览器)。

3.application

application在页面之间传递公共的信息,可以理解为是作用域范围为整个应用程序的用户无关的变量,这些信息保存在内存中,直到Web 容器被关闭。

4. config

config是ServletConfig类的一个实例。在Servlet初始化时,JSP 引擎通过config向它传递信息。这种信息可以是用户在配置文件web.xml提供的属性名/值的参数,也可以是通过ServletContext对象传递的服务器有关的信息。在开发过程中比较少用到config内置对象,只有在编写需要重载Servlet的init()方法时才会用到。

5. pageContext

pageContext提供JSP的全部上下文开发环境,就是说通过pageContext 可以访问所有的其它内置对象。

6.page

page内置对象是this的别名,就是指当前JSP页面本身。在实际开发过程中不常使用。

7.exception

该内置对象仅出现在错误处理页面,即在全局page指令中isErrorpage 属性设置为true的页面。在异常处理页面中,可以通过exception的getMessage()等方法来访问异常信息。

相关文档