JSP页面的组成 JSP页面包括JSP元素、注释及HTML元素。 JSP指令:用于将消息传送到JSP引擎。 JSP动作:使用XML语法格式的标记来控制JSP引擎的各种行为。 JSP脚本:插入Java语言程序代码。 模板数据 html表现的静态数据,jsp不做任何处理。
JSP页面的组成
JSP指令 JSP指令是为JSP引擎而设计的。该指令并不直接产生任何可见输出,而只是告诉引擎如何处理其余JSP页面。这些指令始终被括在“<%@ ...%>”标记中。 jsp有3条指令page,taglib,include。两个最重要的指令是page和include。另外,taglib指令很少使用,在用JSP1.1创建自定义标记时可以使用它。
(1) 到何处查找起支持作用的Java类别: <%@ page import="java.util.Date" %> 几乎在所有的JSP页面顶部都会看到page指令。尽管不是必需的,但page指令可以让你指定: (1) 到何处查找起支持作用的Java类别: <%@ page import="java.util.Date" %> (2) 出现Java运行问题时,通过errorPage将用户引向何处: <%@ page errorPage="errorPage.jsp" %>
include指令用于把其它的文本文件或JSP文件加入到当前的JSP文件中,同时解析这个文件中的JSP语句。 include指令可以把你的内容分成更多可管理的元素。包含的网页可以是一个固定的HTML 页面或更多的JSP内容,形式如: <%@ include file="filename.jsp" %> 采用include指令,可以实现JSP页面的模块化,使JSP的开发和维护变得非常简单。
如果这个包含文件被改变,则包含此文件的JSP文件将被重新编译。 <%@include %>指令将会在JSP编译时插入一个包含文本或代码的文件,当你使用<%@ include %>指令时,这个包含的过程相当于静态的。静态的包含就是指这个被包含的文件将会被插入到JSP文件中去。这个包含的文件可以是JSP文件、HTML文件或文本文件。如果包含的是JSP文件,则这个包含的JSP文件中的代码将会被执行。 注意,在包含文件中不能使用<html>、</html>、<body>、</body>标记,因为这将会影响在原JSP文件中同样的标记,有时还会导致错误。 如果这个包含文件被改变,则包含此文件的JSP文件将被重新编译。
★ file="relativeURL":包含文件的路径名一般来说是指相对路径,不需要什么端口、协议和域名,如 属性: ★ file="relativeURL":包含文件的路径名一般来说是指相对路径,不需要什么端口、协议和域名,如 "error.jsp"、"templates/onlinestore.html"、"/beans/calendar.jsp" 如果路径以“/”开头,那么这个路径主要是参照JSP应用的上下关系路径;如果路径是以文件名或目录名开头的,那么这个路径就是正在使用的JSP文件的当前路径。
例子: include指令(include.jsp) <html> <head><title>An Include Test</title></head> <body bgcolor="white"> <font color="blue"> The current date and time are <%@ include file="date.jsp" %> </font> </body> </html> 被包含文件date.jsp: <%@ page import="java.util.* " %> <%= (new java.util.Date() ).toLocaleString() %>
2.page指令 功能:定义JSP文件中的全局属性。 JSP 语法: <%@ page [ language="java" ] [ extends="package.class" ] [ import="{package.class | package.*}, ..." ] [ session="true | false" ] [ buffer="none | 8KB | sizekb" ] [ autoFlush="true | false" ] [ info="text" ] [ errorPage="relativeURL" ]
[ contentType="mimeType [ ;charset=characterSet ]" | "text/html; charset=ISO-8859-1" ] [ isErrorPage="true | false" ] 例: <%@ page import="java.util.*, java.lang.* " %> <%@ page buffer="5KB" autoFlush="false" %> <%@ page errorPage="error.jsp" %>
相关描述:<%@ page %>指令作用于整个JSP页面,从容器的角度看,每个jsp页面都是一个独立的翻译单元,同一个应用的jsp页面用其自己的page指令指定其翻译时的特性。 可以在一个页面中用多个<% @ page %>指令,但是其中的属性只能用一次。不过也有个例外,那就是import属性。因为import属性和Java中的import语句差不多(参照Java Language),所以就可以多用此属性几次。 无论把<% @ page %>指令放在JSP文件的哪个地方,它的作用范围都是整个JSP页面。不过,为了JSP程序的可读性以及好的编程习惯,最好还是把它放在JSP文件的顶部。
★ language="java":声明脚本语言的种类,暂时只能用“java”。 属性: ★ language="java":声明脚本语言的种类,暂时只能用“java”。 ★ extends="package.class":标明JSP编译时需要加入Java Class的全名,但是得慎重地使用它,它会限制JSP的编译能力。 ★ import="{package.class | package.* }, ...":指明需要导入的Java包的列表,这些包就作用于程序段、表达式以及声明。
java.lang.* javax.servlet.* javax.servlet.jsp.* javax.servlet.http ★ session="true | false":设定客户是否需要HTTP session。如果设定为true,那么session是有用的。 如果设定为false,那么就不能使用session对象,以及定义了scope=session的<jsp:useBean>元素,这样使用会导致错误。缺省值是true。
★ buffer="none | 8KB | sizekb":buffer的大小被out对象用于处理执行后的JSP对客户浏览器的输出。缺省值是8 KB。 ★ autoFlush="true | false":设置如果buffer溢出,是否需要强制输出。如果其值被定义为true(缺省值),输出正常,如果它被设置为false,并且这个buffer溢出,就会导致一个意外错误的发生。如果把buffer设置为none,那么就不能把autoFlush设置为false。 ★ isThreadSafe="true | false":设置JSP文件是否能多线程使用。缺省值是true,也就是说,JSP能够同时处理多个用户的请求。如果设置为false,则一个JSP文件一次只能处理一个请求。
★ info="text":一个文本在执行JSP时将会被逐字加入JSP中,能够使用Servlet.GetServletInfo方法取回。 ★ errorPage="relativeURL":设置处理异常事件的JSP文件。当页面出现一个设有捕获的异常时,指向另一个JSP页面的URL。 ★ contentType="mimeType [ ;charset=characterSet ]" | "text/html;charset=ISO-8859-1":设置MIME类型。缺省MIME类型是text/html, 缺省字符集为ISO-8859-1。 ★ isErrorPage="true | false":设置此页是否为出错页。如果被设置为true,则能使用exception对象。
3.taglib指令 功能:定义一个标签库及其自定义标签的前缀。 JSP 语法: <%@ taglib uri="URIToTagLibrary" prefix="tagPrefix" %> uri:英文全称为Uniform Resource Identifier,其功能是根据标签的前缀对自定义的标签进行惟一的命名。
<%@ taglib uri="http://www.jspcentral.com/tags" prefix="c" %> 例: <%@ taglib uri="http://www.jspcentral.com/tags" prefix="c" %> <c:loop> . </c:loop> 使用jstl Jstl(jsp标准标记库)是一组专门设计的标准标记,用于在jsp中完成一些最常见的编程任务。包括:条件、循环、数据输出、国际化以及xml文档和数据库的使用,最新版本: http://jakarta.apache.org//taglibs/doc/standard-doc/intro.html
相关描述: ★ <% @ taglib %>指令声明此JSP文件使用了自定义的标签,同时引用标签库,还指定了它们的标签的前缀。 ★ 自定义的标签含有标签和元素之分。因为JSP文件能够转化为XML,所以了解标签和元素之间的联系很重要。 ★ 标签只不过是一个在意义上被抬高了的标记,是JSP元素的一部分。 ★ JSP元素是JSP语法的一部分,和XML一样有开始标记和结束标记。元素也可以包含其它的文本、标记、元素。 例子
Jsp动作:操作指令 JSP编译指令是让JSP容器自动采取的动作,但对于Web开发人员,有些时候想要自己控制JSP页面的运行,这时可以采用JSP中的操作指令。 操作指令包括: jsp:include指令、jsp:forward指令、jsp:param指令、jsp:useBean指令、jsp:setProperty指令和jsp:getProperty指令等。
jsp:include指令 jsp:include标准动作用于在当前的JSP页面中加入静态和动态的资源。 语法格式为: <jsp:include page=“test.htm”/> jsp:include指令必须以“/”结束,功能和include指令相同。
jsp:forward指令 jsp:forward操作指令用于把当前的JSP页面转发到另一个页面上。 基本语法为: “<jsp:forward page=”test2.jsp“/>”, 使用该功能时,浏览器的地址栏中地址不会发生任何变化。