Day: %= clock.getDayOfMonth() %
Year: %= clock.getYear() %
%-- Check for AM or PM --%
%! int time = Calendar.getInstance().get(Calendar.AM_PM); %
%
if (time == Calendar.AM) {
%
早上好
%
}
else {
%
下午好
%
}
%
%@ include file="copyright.html" %
上面的JSP例子是不是很简单?我们在JSP网页中使用了几个不同的组件。这些组件包括下面的内容:
JSP action (或JSP标签)使用了多种函数并扩展了JSP的功能。JSP action使用的是一种类似XML的语法,并且被用来处理JavaBean组件。在上面的例子中,jsp:useBean action初始化了一个JavaBean ,JavaBean将在网页的后面部分被用到:
如果在网页中需要获得和设置这个Bean的属性,另一个JSP action将被给出,使用的是下面的语法:
当网页被编译成一个servlet的时候,Directive将被JSP引擎处理。Directive被用来设置页面级的指令、从外部文件插入数据以及制定定制的标签库。Directive被定义在%@ 和 %之间。 在上面的例子中,Directive定义了页面所使用的语言(Java),为了关联Java类需要植入代码并指定一个将要插入页面底部的HTML文件内容:
%@ page language=="java" imports=="java.util.*" %
%@ include file=="copyright.html" %
声明与Java中的变量声明相似,它也是为了后面表达式或scriptlet的需要来定义变量。声明被定义在%! 和 %之间。在上面的例子中,“int”声明并给出了一个当前时间的相应值 (AM 或 PM):
%! int time = Calendar.getInstance().get(Calendar.AM_PM); %
表达式可以是变量或常量,它插在由web服务器所返回的数据里,并用%= 和 %来定义。在上面的例子中,表达式将调用JavaBean组件并在页面中插入结果数据:
%= clock.getDayOfMonth() %
%= clock.getYear() %
Scriptlet将作为一个Java代码块植入JSP页面中。Scriptlet代码被一一插入由页面所产生的servlet中,它被定义在% 和%之间。上面例子中的scriptlet可以根据当前用户产生相应的时间和问候语:
%
if (time == Calendar.AM) {
%
早上好
%
}
else {
%
下午好
%
}
%
注释部分和HTML的注释相似,当在执行的时候JSP引擎将去掉对注释的解释。这就意味着JSP注释并不返回到用户的浏览器中。不象HTML注释被定义在
%-- Check for AM or PM --%