在 Sun 正式发布 JSP(JavaServer Pages) 之后,这种新的 Web 应用开发技术很快引起了人们的关注。JSP为创建高度动态的 Web 应用提供了一个独特的开发环境。按照 Sun 的说法,JSP能够适应市场上包括 Apache WebServer 、 IIS4.0 在内的 85% 的服务器产品。即使您对 ASP “一往情深”,我们认为,关注JSP的发展仍旧很有必要。
1.ASP和JSP的简单比较
JSP 与 Microsoft 的 ASP 技术非常相似。两者都提供在 HTML 代码中混合某种程序代码、由语言引擎解释执行程序代码的能力。在 ASP和JSP 环境下, HTML 代码主要负责描述信息的显示样式,而程序代码则用来描述处理逻辑。普通的 HTML 页面只依赖于 Web 服务器,而 ASP和JSP 页面需要附加的语言引擎分析和执行程序代码。程序代码的执行结果被重新嵌入到 HTML 代码中,然后一起发送给浏览器。 ASP和JSP 都是面向 Web 服务器的技术,客户端浏览器不需要任何附加的软件支持。
ASP 的编程语言是 VBScript 之类的脚本语言,JSP使用的是 Java ,这是两者最明显的区别。此外, ASP 与JSP还有一个更为本质的区别:两种语言引擎用完全不同的方式处理页面中嵌入的程序代码。在 ASP 下, VBScript 代码被 ASP 引擎解释执行;在JSP下,代码被编译成 Servlet 并由 Java 虚拟机执行,这种编译操作仅在对JSP页面的第一次请求时发生。
2.运行环境
Sun 公司的JSP主页在http://www.javasoft.com/products/jsp/index.html ,从这里还可以下载JSP规范,这些规范定义了供应商在创建JSP引擎时所必须遵从的一些规则。
执行JSP代码需要在服务器上安装JSP引擎。此处我们使用的是 Sun 的 JavaServer Web Development Kit ( JSWDK )。为便于学习,这个软件包提供了大量可供修改的示例。安装 JSWDK 之后,只需执行 startserver 命令即可启动服务器。在默认配置下服务器在端口 8080 监听,使用http://localhost:8080即可打开缺省页面。
在运行JSP示例页面之前,请注意一下安装 JSWDK 的目录,特别是“ work ”子目录下的内容。执行示例页面时,可以在这里看到JSP页面如何被转换成 Java 源文件,然后又被编译成 class 文件(即 Servlet )。 JSWDK 软件包中的示例页面分为两类,它们或者是JSP文件,或者是包含一个表单的 HTML 文件,这些表单均由JSP代码处理。与 ASP 一样,JSP中的 Java 代码均在服务器端执行。因此,在浏览器中使用“查看源文件”菜单是无法看到JSP源代码的,只能看到结果 HTML 代码。所有示例的源代码均通过一个单独的“ examples ”页面提供。
3.JSP页面示例
下面我们分析一个简单的JSP页面。您可以在 JSWDK 的 examples 目录下创建另外一个目录存放此文件,文件名字可以任意,但扩展名必须为 .jsp 。从下面的代码清单中可以看到,JSP页面除了比普通 HTML 页面多一些 Java 代码外,两者具有基本相同的结构。 Java 代码是通过 < % 和 %> 符号加入到 HTML 代码中间的,它的主要功能是生成并显示一个从 0 到 9 的字符串。在这个字符串的前面和后面都是一些通过 HTML 代码输出的文本。
- < HTML>
- < HEAD>< TITLE>JSP 页面 < /TITLE>< /HEAD>
- < BODY>
- < %@ page language="java" %>
- < %! String str="0"; %>
- < % for (int i=1; i < 10; i++) {
- strstr = str + i;
- } %>
- JSP 输出之前。
- < P>
- < %= str %>
- < P>
- JSP 输出之后。
- < /BODY>
- < /HTML>
这个ASP和JSP页面可以分成几个部分来分析。
首先是JSP指令。它描述的是页面的基本信息,如所使用的语言、是否维持会话状态、是否使用缓冲等。JSP指令由 < %@ 开始, %>结束。在本例中,指令“ < %@ page language="java" %> ”只简单地定义了本例使用的是 Java 语言(当前,在JSP规范中 Java 是唯一被支持的语言)。
接下来的是JSP声明。JSP声明可以看成是定义类这一层次的变量和方法的地方。JSP声明由 < %! 开始, %> 结束。如本例中的“ < %! String str="0"; %> ”定义了一个字符串变量。在每一项声明的后面都必须有一个分号,就象在普通 Java 类中声明成员变量一样。
位于 < % 和 %> 之间的代码块是描述JSP页面处理逻辑的 Java 代码,如本例中的 for 循环所示。
最后,位于 < %= 和 %> 之间的代码称为JSP表达式,如本例中的“ < %= str %> ”所示。JSP表达式提供了一种将JSP生成的数值嵌入 HTML 页面的简单方法。
【编辑推荐】