1、JSP的编译器指引与指令元件
编译器指引 <%@ 编译器指引 %>
预定义 <%! 预定义 %>
运算式 <%= 运算式 %>
程序码片段/小型指令 <% 程序码片段 %>
注解 <%-- 注解 --%>
2、编译器指引
JSP的编译器指引是针对JSP引擎。它们并不会直接产生任何看得见的输出;相反的,它们是在告诉引擎如何处理其他的JSP网页。它们永远包含在 <%@ ?%>标签里。两个主要的指引是 page与include。我们不会讨论taglib编译器指引但它可以在JSP1.1里用来建立自订标签。
你几乎可以在你所有的JSP网页最上面找到page编译器指引。虽然这不是必须的,但它可以让你指定到那里可以找到支持的Java类别: <%@ page import="java.util.Date" %>, 当发生Java问题的事件时应该将信息传送到那里: <%@ page errorPage="errorPage.jsp" %>, 以及你是否要为使用者管理通话期的通信,可能存取多个网页(稍後在JavaBeans里会有更多通话期的讨论): <%@ page session="true" %>。
include编译器指引让你将你的内容分成几个可管理的元件,就像那些有表头或注脚的网页。所包含的网页可以是固定格式的HTML网页或者是JSP内容的网页:
<%@ include file="filename.jsp" %>。
3、JSP预定义让你定义网页层的参数,来储存信息或定义支持的函数式,让JSP网页的其余部分能够使用。如果你发现自己有太多的程序码,你最好将它们放在不同的Java类别里。你可以在 <%! ?%>标签里找到预定义。记住要在参数预定义的後面加上分号,就跟任何有效的Java叙述的形式一样: <%! int i=0; %>。
4、JSP里有运算式,评估运算式的结果可以转换成字串并且直接使用在输出网页上。JSP运算是属於<%= ?%> 标签里,并不包含分号,加引号字串的无用部分:
<%= i %>
<%= "Hello" %> 。
5、JSP程序码片段或小型指令文件是包含在<% ?%> 标签里。当网络服务器接受这段请求时,这段Java程序码会执行。小型指令文件可以是原始的HTML或XML,其内部的程序码片段可以让你建立有条件的执行程序码,或者只是一些使用另一块程序码的东西。举例来说,下列的程序码结合了运算式与小型指令文件,在H1,H2,H3,以及H4标签里显示字串"Hello"。小型指令文件不限於一行的原始程序码 :
<% for (int i=1; i<=4; i++) { %>
>Hello>
<% } %>。
注解.
最後一个主要JSP元件是嵌入式注解。虽然你可以在你的文件里包含HTML注解,如果使用者检视网页的原始码,他们也会看到这些注解。如果你不要让使用者看到你的注解,你可以将它放在<%-- ?--%>标签里:
<%-- 针对服务器端的注解 --%>。
三、JSP与JavaBean
虽然你可以在小型指令档里放入一大块的代码,但是大多数的Java代码是属於可以重复使用的元件,称为JavaBean。JavaBean就跟ActiveX控制项一样:它们提供已知的功能,并且是为了可随时重复使用的目的而设计的。
JavaBean的¤值在於它可以经由一组特性来使用,而这些特性则提供对JavaBean设定的存取。以人来作范例,此人就是JavaBean,而他的姓名,社会福利安全号码,以及住址可以是特性。对於JSP网站,基本上你是将'JavaBean'动态的连接到你的网站。
假设JavaBean是在建立网站之前建好的,你要做的第一件事是告诉JSP网页它所需要使用JavaBean,这工作可以用标签来完成:
.
标签需要你以id 属性来辨识usebean.在这里,你提供一个名称让JSP网页来辨识usebean,除了id 属性之外,你也必须告诉网页要到哪里去找这个usebean,或者是它的Java类别名称。类别属性提供如何在各式方法之中找到它,最後一个需要的元件是scope 属性。有了范围属性的帮助,你可以告诉usebean,要它为单一网页(预设)[scope="page"];为一个被请求的网页[scope="request"];为通话期[scope="session"]; 或为整个应用程式[scope="application"]来维护它自己的资源。对於通话期范围,你可以很容易的维护JSP网页里的项目,例如购物车: 一旦你宣告了JavaBean之後,你就可以存取它的特性来订购它。要取得一特性的值,使用标签。有了标签,你可以指定要使用的usebean名称(从useBean的id栏位),以及你要取得值的特性。接著,真正的值就会放在输出里:
.
要更改JavaBean的特性,你需要使用标签.对这个标签,你也需要辨认usebean以及要修正的特性,除此之外,你还需要提供新值。如果命名正确,这些可以直接经由规定的格式取得:
;
要从一参数取得,你必须直接命名此特性以及参数:
;
或是直接以名称与值来设定:
or />.
有关JavaBean的最後一点:要让网络服务器可以找到JavaBean,你 要将它们的类别文件放在特别位置。对JSWDK而言,最简单的地方是在安装目录里的类别目录,例如 jswdk-1.0.1classes.
四、JSP的内部物件
最後一个与JSP语法有关的元件叫做内部物件.在JSP小型指令档内,你可以存取这些内部物件来与执行JSP网页的servlet环境相互作用。许多对内部物件的存取应该要简化。然而,这些是范例,它们的存取都是可接受的,要完整的利用内部物件设定则 要对最新的Java Servlet API有所了解。
下一篇:浅析JSP网页自动生成工具的设计