JSP页面组件
JSP页面组件
JSP页面由各种组件组成,可以在JSP应用程序中使用这些组件来添加其他功能,如添加添加和循环结构或使用JavaBean组件。JSP页面的四个组件为:
- JSP指令
- JSP脚本
- JSP隐式对象
- JSP动作
1. JSP指令
JSP页面中的指令元素提供关于特定JSP页面的全局信息,有三种类型:
- Page指令
- Taglib指令
- Include指令
要调用指令,需要使用符号<%@directive attribute = “value”%>;
page指令
page指令定义将关于JSP页面一般设置通知给Web容器的属性。您可以用page指令指定不同属性。page指令的语法为:
<%@ page attribute_list %>;
下表列出了page指令支持的各种属性及可能的值和描述:
属性名称 | 描述 |
---|---|
language | 定义JSP页面的脚本语言。 |
extends | 定义JSP生成的servlet扩展的父类。 |
import | 将包、类或接口的列表导入生成的servlet中。 |
session | 指定所生成的servlet能否访问会话。如果属性值设置为true,将生成隐式对象session。session属性的默认值是true。 |
buffer | 指定输出缓冲区的大小,则自动属性输出缓冲区。如果属性值设置为false,则缓冲区满时将引发异常。autoFlush属性的默认值是true。 |
autoflush | 如果此属性值设置为true,则自动属性输出缓冲区。如果属性值设置为false,则缓冲区满时将引发异常。autoFlush属性的默认值是ture。 |
isThreadSafe | 指定JSP页面是否线程安全。 |
errorPage | 指定将任何已生成而未处理的异常指向到该URL。 |
isErrorPage | 如果此属性值设置为true,则指定当前JSP页面为错误页面。isErrorPage属性的值是false。 |
contentType | 定义响应的MIME类型。contentType属性的默认值是text/html。 |
include指令
include指令用于在JSP页面编译期间以相对URL的形式要插入的文件的名称。所插入文件的内容称为JSP页面的组成部分。include指令还可以用于插入代码中多个页面的部分,从而避免 为每个代码分别使用bean。定义include指令的语法为:
<%@ include file = " URLname "%>
例如,要在包含Superstore在线商场的名称和徽标的JSP页面上包括一个HTML文件(Superstore.html),代码行可以写成:
<%@ include file = " Superstore.html "%>
taglib指令
taglib指令将自定义标记导入当前JSP页面上。自定义标记指用户定义的标记,用于在JSP页面 中执行重复性任务。标记库描述符(TLD)文件定义自定义标记的功能。
taglib指令将其自身与URI相关联,以便唯一地标识一个自定义标记。它还和能将此自定义标记与JSP页面上使用的其他标记库区分开的标记前缀字符串相关联。在JSP页面上导入taglib指令的语法为:
<%@ taglib uri = " taglib_lib_URI" prefix = " prefix "%>
属性 | 描述 |
---|---|
Uri | 查找自定义标记的TLD文件。 |
prefix | 定义用于区分自定义标记实例的前缀字符串。 |
2. JSP脚本元素
JSP脚本元素用于直接将Java代码嵌入到HTML页面中。可以在JSP页面中使用的各种类型的JSP脚本元素有:
- 声明:JSP声明提供了一种定义变量和方法的机制。声明语句放在<%!和%>符号之间,始终以分号结尾。
使用JSP声明变量的代码段如下:
<%!
int i =0;
int j =0;
int z=0;
int prod=0;
%> - 表达式:JSP表达式用于直接将值插入到输出中。JSP表达式在用户做出HTTP请求时求值。在JSP文件中包括JSP表达式的语法为:
<%= expression> - Scriptlet:JSP scriplet由包含<%和%>符号内的有效Java代码段组成。JSP scriptlet请求时执行,且可以使用声明、表达式或JavaBean。声明JSP scriptlet包括有效Java代码的语法为:
<%Java code%>
3. JSP隐式对象
JSP中的对象可以使用指令隐式创建、使用标准操作显式创建或通过在scriptlet中声明来直接创建。JSP隐式对象指可以纳入到JSP表达式和scriptlet中的特定预定义的变量。JSP的隐式对象通过servlet类和接口实现。下表列出了各种隐式变量及其类和描述:
隐式对象 | 类 | 描述 |
---|---|---|
application | javax.servlet.ServletContext | 定义Web应用程序,一般是当前Web山下文中的应用程序。 |
config | javax.Servlet.ServletConfig | 表示ServletConfig类的对象。 |
exception | java.lang.Throwable | 表示JSP页面中的Throwable异常。 |
Out | javax.servlet.jsp.JspWriter | 表示向客户机发送响应的JspWriter的对象。JspWriter扩展了PrintWriter类,一般由JSP页面用于发送客户机响应。 |
page | java.lang.Object | 表示JSP页面的当前实例,其中该当前实例用于指称所生成servlet的当前实例。 |
session | javax.servlet.http.HttpSession | 表示HttpSession接口的会话对象。 |
response | javax.servlet.http.HttpServletResponse | 表示HttpServletResponse对线的响应对象,用于向客户机发送HTML输出。 |
request | javax.servlet.http…HttpServletRequest | 表示HttpServletRequest对象的请求对象。用于检索和请求一起提交的数据。 |
pageContext | javax.servlet.jsp.PageContext | 表示JSP页面的页面上下文。 | </