10. 附录 - Web 开发工具
在此,我们将说明如何查找并安装用于 Java、PHP、ASP 和 ASP.NET Web 开发的免费工具。部分工具已更新,此处提供的说明可能不再适用于最新版本。读者需据此进行调整……:
- 一款能够显示 XML 的最新浏览器。本课程中的示例已在 Internet Explorer 6 上经过测试。
- 最新的 JDK(Java 开发工具包)。JDK 包含 Java 1.4 浏览器插件,该插件支持浏览器通过 JDK 1.4 显示 Java 小程序。
- 用于编写 Java Servlet 的开发环境。本课程使用 JBuilder 7。
- Web 服务器:Apache、PWS(个人 Web 服务器,Cassini)、Tomcat。
- Apache可用于开发PERL(实用提取和报告语言)或PHP(个人主页)的Web应用程序
- PWS 可在 Windows 平台上用于开发 ASP(Active Server Pages)或 PHP Web 应用程序。Cassini 支持 ASP.NET 开发。
- Tomcat 用于开发基于 Java Servlet 或 JSP(Java Server Pages)的 Web 应用程序
- 数据库管理系统:MySQL
- EasyPHP:一款将 Apache Web 服务器、PHP 语言和 MySQL 数据库管理系统捆绑在一起的工具
10.1. Web 服务器、浏览器、脚本语言
- 主要 Web 服务器
- Apache(Linux、Windows)
- Internet Information Server (IIS) (NT)、Personal Web Server (PWS) (Windows 9x)、Cassini (.NET 平台)
- 主要浏览器
- Internet Explorer (Windows)
- 网景 (Linux, Windows)
- Mozilla (Linux, Windows)
- Opera(Linux、Windows)
- 服务器端脚本语言
- VBScript (IIS, PWS)
- JavaScript (IIS, PWS)
- Perl (Apache, IIS, PWS)
- PHP (Apache, IIS, PWS)
- Java (Apache, Tomcat)
- .NET 语言
- 浏览器端脚本语言
- VBScript (IE)
- JavaScript (IE, Netscape)
- PerlScript (IE)
- Java (IE, Netscape)
10.2. 在哪里可以找到这些工具
http://www.netscape.com/(下载链接) | |
http://www.microsoft.com/windows/ie/default.asp | |
http://www.mozilla.org | |
http://www.php.net | |
http://www.activestate.com | |
http://msdn.microsoft.com/scripting(点击“Windows Script”链接) | |
http://java.sun.com/ | |
http://www.apache.org/ | |
包含在 Windows 95 的 NT 4.0 选件包中 包含在 Windows 98 光盘中 http://www.microsoft.com/ntserver/nts/downloads/recommended/NT4OptPk/win95.asp | |
http://www.microsoft.com | |
http://jakarta.apache.org/tomcat/ | |
http://www.borland.com/jbuilder/ | |
http://www.easyphp.org/ | |
http://www.asp.net |
10.3. EasyPHP
该应用程序非常方便,因为它在一个软件包中集成了以下组件:
- Apache Web 服务器
- PHP 解释器
- MySQL 数据库管理系统 (3.23.x)
- MySQL 管理工具:PhpMyAdmin
安装程序界面如下所示:

安装 EasyPHP 非常简单,文件系统中会创建一个目录结构:

应用程序可执行文件 | |
Apache 服务器目录结构 | |
MySQL 数据库目录 | |
phpMyAdmin 应用程序目录结构 | |
PHP 目录结构 | |
由 EasyPHP Apache 服务器提供的网页目录树的根目录 | |
用于存放 Apache 服务器 CGI 脚本的目录 |
EasyPHP 的主要优势在于该应用程序已预先配置好。因此,Apache、PHP 和 MySQL 已配置为协同工作。当您通过“程序”菜单中的快捷方式启动 EasyPHP 时,屏幕右下角会出现一个图标。
![]() |
如果 Apache Web 服务器和 MySQL 数据库正在运行,带有红色圆点的“E”图标应会闪烁。右键单击该图标将打开一个包含以下选项的菜单:

“管理”选项允许您配置设置并执行功能测试:

10.3.1. PHP 解释器的所有配置
“PHP 信息”按钮可让您验证 Apache-PHP 组合是否正常工作:此时应显示一个 PHP 信息页面:

“扩展”按钮会显示已安装的 PHP 扩展列表。这些实际上是函数库。

例如,上图显示了使用 MySQL 数据库所需的函数均已存在。
“设置”按钮会显示 MySQL 数据库管理员的用户名和密码。

虽然使用 MySQL 数据库超出了本快速概述的范围,但这里很清楚,应为数据库管理员设置密码。
10.3.2. Apache 管理
仍在 EasyPHP 管理页面上,“您的别名”链接允许您定义与目录关联的别名。这使您能够将网页放置在 EasyPHP 目录树中 www 目录之外的位置。

若在上述页面中输入以下信息:

并点击“验证”按钮,<easyphp>\apache\conf\httpd.conf 文件中将添加以下内容:
Alias /st/ "e:/data/serge/web/"
<Directory "e:/data/serge/web">
Options FollowSymLinks Indexes
AllowOverride None
Order deny,allow
allow from 127.0.0.1
deny from all
</Directory>
<easyphp> 指的是 EasyPHP 的安装目录。httpd.conf 是 Apache 服务器的配置文件。因此,您也可以通过直接编辑该文件来达到相同的效果。通常情况下,Apache 会立即应用对 httpd.conf 文件的更改。如果未立即生效,您需要通过 EasyPHP 图标停止并重启服务器:

要完成本示例,现在我们可以将网页放置在目录树 e:\data\serge\web 中:
并使用别名 st 请求该页面:

在此示例中,Apache 服务器已配置为在 81 端口运行。其默认端口为 80。这由我们之前看到的 httpd.conf 文件中的以下行控制:
10.3.3. Apache 配置文件 [htpd.conf]
若需对 Apache 进行精细调整,必须手动编辑其 httpd.conf 配置文件,该文件位于 <easyphp>\apache\conf 文件夹中:

在此配置文件中,有几个关键点需要注意:
| 作用 |
指定包含 Apache 目录树的文件夹 | |
指定 Web 服务器将使用的端口。通常为 80。通过更改此行,您可以让 Web 服务器在其他端口上运行 | |
Apache 服务器管理员的电子邮件地址 | |
Apache 服务器运行所在的机器名称 | |
Apache 服务器的安装目录。当配置文件中出现相对文件名时,它们都是相对于此目录的。 | |
服务器提供的网页树的根目录。在此,URL http://machine/rep1/fic1.html 将对应文件 E:\Program Files\EasyPHP\www\rep1\fic1.html | |
设置前一个文件夹的属性 | |
日志文件夹,因此实际上是 <ServerRoot>\logs\error.log:E:\Program Files\EasyPHP\apache\logs\error.log。若发现 Apache 服务器无法正常工作,请检查此文件。 | |
E:\Program Files\EasyPHP\cgi-bin 将成为目录树的根目录,您可以在其中放置 CGI 脚本。因此,URL http://machine/cgi-bin/rep1/script1.pl 将是 CGI 脚本 E:\Program Files\EasyPHP\cgi-bin\rep1\script1.pl 的访问地址。 | |
设置上述文件夹的属性 | |
用于加载模块的代码行,使 Apache 能够与 PHP4 协同工作。 | |
将这些文件扩展名设置为被视为 PHP 文件 |
10.3.4. 使用 PhpMyAdmin 管理 MySQL
在 EasyPHP 管理页面上,点击 PhpMyAdmin 按钮:

“主页”下方的下拉列表显示当前的数据库。 | ![]() |
括号中的数字表示表的数量。若选择某个数据库,其表将被显示: | ![]() |
该网页提供了多种数据库操作功能:

若点击“查看用户”链接:

这里只有一个用户:root,即 MySQL 管理员。点击“编辑”链接,您可以更改其密码,当前密码为空——这种做法对于管理员而言并不推荐。关于 PhpMyAdmin,我们不再赘述,因为它是一款功能丰富的工具,要全面介绍需要好几页的篇幅。
10.4. PHP
我们已经了解了如何通过 EasyPHP 应用程序获取 PHP。若要直接获取 PHP,请访问网站 http://www.php.net。PHP 不仅限于 Web 应用,在 Windows 系统中也可作为脚本语言使用。请编写以下脚本并将其保存为 date.php:
<?
// script php affichant l'heure
$maintenant=date("j/m/y, H:i:s",time());
echo "Nous sommes le $maintenant";
?>
在 DOS 窗口中,导航至包含 [date.php] 的目录并运行它:
dos>"e:\program files\easyphp\php\php.exe" date.php
X-Powered-By: PHP/4.2.0
Content-type: text/html
Nous sommes le 18/07/02, 09:31:01
10.5. PERL
最好已安装 Internet Explorer。如果已安装,Active Perl 会将其配置为接受 HTML 页面中的 PERL 脚本,这些脚本将由 IE 本身在客户端执行。Active Perl 网站位于 URL http://www.activestate.comA 安装后,PERL 将安装在一个我们称为 <perl> 的目录中。它包含以下目录结构:
DEISL1 ISU 32 403 23/06/00 17:16 DeIsL1.isu
BIN <REP> 23/06/00 17:15 bin
LIB <REP> 23/06/00 17:15 lib
HTML <REP> 23/06/00 17:15 html
EG <REP> 23/06/00 17:15 eg
SITE <REP> 23/06/00 17:15 site
HTMLHELP <REP> 28/06/00 18:37 htmlhelp
可执行文件 perl.exe 位于 <perl>\bin 目录下。Perl 是一种可在 Windows 和 Unix 系统上运行的脚本语言,也常用于 Web 编程。让我们编写第一个脚本:
# script PERL affichant l'heure
# modules
use strict;
# programme
my ($secondes,$minutes,$heure)=localtime(time);
print "Il est $heure:$minutes:$secondes\n";
将此脚本保存为名为 heure.pl 的文件。打开一个 DOS 窗口,导航至包含该脚本的目录,并运行它:
10.6. VBScript、JavaScript、PerlScript
这些是适用于 Windows 的脚本语言。它们可以在各种环境中运行,例如
- Windows Scripting Host(用于直接在 Windows 中使用,特别是编写系统管理脚本)
- Internet Explorer。随后,它被用于 HTML 页面中,增加了仅靠 HTML 无法实现的交互性。
- Internet Information Server (IIS)——微软在 NT/2000 上的 Web 服务器,以及其在 Win9x 上的等效版本 Personal Web Server (PWS)。在这种情况下,VBScript 用于服务器端 Web 编程,微软将这项技术称为 ASP(Active Server Pages)。
从以下网址下载安装文件:http://msdn.microsoft.com/scripting,并按照“Windows Script”链接的指引操作。安装内容包括:
- Windows Scripting Host 容器,该容器支持多种脚本语言,如 VBScript 和 JavaScript,以及 Active Perl 附带的 PerlScript 等。
- 一个 VBScript 解释器
- 一个 JavaScript 解释器
让我们进行一些快速测试。编写以下 VBScript 程序:
' a class
class personne
Dim nom
Dim age
End class
' creation of a person object
Set p1=new personne
With p1
.nom="dupont"
.age=18
End With
' display properties person p1
With p1
wscript.echo "nom=" & .nom
wscript.echo "age=" & .age
End With
该程序使用对象。我们将其命名为 objects.vbs(.vbs 扩展名表示 VBScript 文件)。导航至该文件所在的目录并运行它:
dos>cscript objets.vbs
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.
nom=dupont
age=18
现在,让我们编写以下使用数组的 JavaScript 程序:
// tableau dans un variant
// tableau vide
tableau=new Array();
affiche(tableau);
// tableau croît dynamiquement
for(i=0;i<3;i++){
tableau.push(i*10);
}
// affichage tableau
affiche(tableau);
// encore
for(i=3;i<6;i++){
tableau.push(i*10);
}
affiche(tableau);
// tableaux à plusieurs dimensions
WScript.echo("-----------------------------");
tableau2=new Array();
for(i=0;i<3;i++){
tableau2.push(new Array());
for(j=0;j<4;j++){
tableau2[i].push(i*10+j);
}//for j
}// for i
affiche2(tableau2);
// fin
WScript.quit(0);
// ---------------------------------------------------------
function affiche(tableau){
// affichage tableau
for(i=0;i<tableau.length;i++){
WScript.echo("tableau[" + i + "]=" + tableau[i]);
}//for
}//function
// ---------------------------------------------------------
function affiche2(tableau){
// affichage tableau
for(i=0;i<tableau.length;i++){
for(j=0;j<tableau[i].length;j++){
WScript.echo("tableau[" + i + "," + j + "]=" + tableau[i][j]);
}// for j
}//for i
}//function
该程序使用数组。我们将其命名为 arrays.js(.js 后缀表示 JavaScript 文件)。导航至该文件所在的目录并运行它:
dos>cscript tableaux.js
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. Tous droits réservés.
tableau[0]=0
tableau[1]=10
tableau[2]=20
tableau[0]=0
tableau[1]=10
tableau[2]=20
tableau[3]=30
tableau[4]=40
tableau[5]=50
-----------------------------
tableau[0,0]=0
tableau[0,1]=1
tableau[0,2]=2
tableau[0,3]=3
tableau[1,0]=10
tableau[1,1]=11
tableau[1,2]=12
tableau[1,3]=13
tableau[2,0]=20
tableau[2,1]=21
tableau[2,2]=22
tableau[2,3]=23
最后再看一个 PerlScript 的示例。您必须安装 Active Perl 才能使用 PerlScript。
<job id="PERL1">
<script language="PerlScript">
# du Perl classique
%dico=("maurice"=>"juliette","philippe"=>"marianne");
@cles= keys %dico;
for ($i=0;$i<=$#cles;$i++){
$cle=$cles[$i];
$valeur=$dico{$cle};
$WScript->echo ("clé=".$cle.", valeur=".$valeur);
}
# du perlscript utilisant les objets Windows Script
$dico=$WScript->CreateObject("Scripting.Dictionary");
$dico->add("maurice","juliette");
$dico->add("philippe","marianne");
$WScript->echo($dico->item("maurice"));
$WScript->echo($dico->item("philippe"));
</script>
</job>
本程序演示了两个字典的创建和使用:一个采用经典的 Perl 风格,另一个使用 Windows Script 脚本字典对象。我们将此代码保存到文件 dico.wsf 中(wsf 是 Windows Script 文件的扩展名)。导航至程序所在的文件夹并运行它:
dos>cscript dico.wsf
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. Tous droits réservés.
clé=philippe, valeur=marianne
clé=maurice, valeur=juliette
juliette
marianne
PerlScript 可以访问其运行容器中的对象。在此示例中,这些对象来自 Windows Script 容器。在 Web 编程环境中,VBScript、JavaScript 和 PerlScript 脚本既可以在 IE 浏览器内执行,也可以在 PWS 或 IIS 服务器上执行。如果脚本较为复杂,建议按照前文所述,在 Windows Script 容器中(即脱离 Web 环境)进行测试。 这样,您就可以仅测试脚本中不使用浏览器或服务器特定对象的功能。即使存在这一限制,这种方法仍然很有用,因为调试在 Web 服务器或浏览器中运行的脚本通常非常不切实际。
10.7. JAVA
Java 可通过以下 URL 获取:http://www.sun.com,并安装在名为 <java> 的目录结构中,该目录包含以下元素:
22/05/2002 05:51 <DIR> .
22/05/2002 05:51 <DIR> ..
22/05/2002 05:51 <DIR> bin
22/05/2002 05:51 <DIR> jre
07/02/2002 12:52 8 277 README.txt
07/02/2002 12:52 13 853 LICENSE
07/02/2002 12:52 4 516 COPYRIGHT
07/02/2002 12:52 15 290 readme.html
22/05/2002 05:51 <DIR> lib
22/05/2002 05:51 <DIR> include
22/05/2002 05:51 <DIR> demo
07/02/2002 12:52 10 377 848 src.zip
11/02/2002 12:55 <DIR> docs
在 bin 目录中,你会找到 javac.exe(Java 编译器)和 java.exe(Java 虚拟机)。你可以进行以下测试:
- 编写以下脚本:
//java program displaying the time
import java.io.*;
import java.util.*;
public class heure{
public static void main(String arg[]){
// retrieve date & time
Date maintenant=new Date();
// we display
System.out.println("Il est "+maintenant.getHours()+
":"+maintenant.getMinutes()+":"+maintenant.getSeconds());
}//hand
}//class
- 将此程序保存为 heure.java。打开一个 DOS 窗口。导航至包含 heure.java 文件的目录并编译它:
dos>c:\jdk1.3\bin\javac heure.java
Note: heure.java uses or overrides a deprecated API.
Note: Recompile with -deprecation for details.
在上述命令中,[c:\jdk1.3\bin\javac] 必须替换为 javac.exe 编译器的确切路径。您将在 heure.java 所在的同一目录中获得一个名为 heure.class 的文件;该文件即为即将由 java.exe 虚拟机执行的程序。
- 运行程序:
在上述命令中,[c:\jdk1.3\bin\java] 必须替换为 Java 虚拟机 [java.exe] 的确切路径。
10.8. Apache 服务器
我们已经看到,可以通过 EasyPHP 应用程序获取 Apache 服务器。若要直接获取,请访问 Apache 网站:http://www.apache.org。安装过程会创建一个包含服务器所需所有文件的目录结构。我们将该目录命名为 <apache>。其目录结构类似于以下内容:
UNINST ISU 118 805 23/06/00 17:09 Uninst.isu
HTDOCS <REP> 23/06/00 17:09 htdocs
APACHE~1 DLL 299 008 25/02/00 21:11 ApacheCore.dll
ANNOUN~1 3 000 23/02/00 16:51 Announcement
ABOUT_~1 13 197 31/03/99 18:42 ABOUT_APACHE
APACHE EXE 20 480 25/02/00 21:04 Apache.exe
KEYS 36 437 20/08/99 11:57 KEYS
LICENSE 2 907 01/01/99 13:04 LICENSE
MAKEFI~1 TMP 27 370 11/01/00 13:47 Makefile.tmpl
README 2 109 01/04/98 6:59 README
README NT 3 223 19/03/99 9:55 README.NT
WARNIN~1 TXT 339 21/09/98 13:09 WARNING-NT.TXT
BIN <REP> 23/06/00 17:09 bin
MODULES <REP> 23/06/00 17:09 modules
ICONS <REP> 23/06/00 17:09 icons
LOGS <REP> 23/06/00 17:09 logs
CONF <REP> 23/06/00 17:09 conf
CGI-BIN <REP> 23/06/00 17:09 cgi-bin
PROXY <REP> 23/06/00 17:09 proxy
INSTALL LOG 3 779 23/06/00 17:09 install.log
Apache 配置文件目录 | |
Apache 日志文件目录(监控) | |
Apache 可执行文件 |
10.8.1. 配置
在 <Apache>\conf 目录中,您将找到以下文件:httpd.conf、srm.conf、access.conf。在 Apache 的最新版本中,这三个文件已被合并为 httpd.conf。我们已经介绍了该配置文件的关键点。在下面的示例中,测试使用了 Apache 版本的 EasyPHP,因此使用的是其配置文件。 在此文件中,DocumentRoot(指定网页目录树的根目录)为 e:\program files\easyphp\www。
10.8.2. PHP - Apache 链接
为进行测试,请创建名为 intro.php 的文件,内容仅包含以下单行代码:
并将该文件放置在 Apache 服务器的根目录(即上文提到的 DocumentRoot)中。访问 URL http://localhost/intro.php,您应能看到一列 PHP 信息:

以下 PHP 脚本用于显示时间。我们之前已经见过它:
<?
// time : nb de millisecondes depuis 01/01/1970
// "format affichage date-heure
// d: jour sur 2 chiffres
// m: mois sur 2 chiffres
// y : année sur 2 chiffres
// H : heure 0,23
// i : minutes
// s: secondes
print "Nous sommes le " . date("d/m/y H:i:s",time());
?>
将此文本文件放置在 Apache 服务器的根目录(DocumentRoot)中,并将其命名为 date.php。打开浏览器,输入 URL http://localhost/date.php。您将看到以下页面:

10.8.3. PERL-APACHE 链接
这可以通过在文件 <apache>\conf\httpd.conf 中添加以下形式的行来实现:ScriptAlias /cgi-bin/ "E:/Program Files/EasyPHP/cgi-bin/"。其语法为 ScriptAlias /cgi-bin/ "<cgi-bin>",其中 <cgi-bin> 是放置 CGI 脚本的文件夹。CGI(通用网关接口)是 Web 服务器与应用程序之间通信的标准。 当客户端向 Web 服务器请求动态页面(即由程序生成的页面)时,Web 服务器必须指示程序生成该页面。CGI 定义了服务器与程序之间的交互方式,特别是信息在两者之间如何传输。如有必要,请修改 ScriptAlias /cgi-bin/ "<cgi-bin>" 这行代码并重启 Apache 服务器。然后执行以下测试:
- 编写脚本:
#!c:\perl\bin\perl.exe
# script PERL affichant l'heure
# modules
use strict;
# programme
my ($secondes,$minutes,$heure)=localtime(time);
print <<FINHTML
Content-Type: text/html
<html>
<head>
<title>heure</title>
</head>
<body>
<h1>Il est $heure:$minutes:$secondes</h1>
</body>
FINHTML
;
- 将此脚本放置在 <cgi-bin>\heure.pl 中,其中 <cgi-bin> 是可接收 CGI 脚本的目录(参见 httpd.conf)。第一行 #!c:\perl\bin\perl.exe 指定了 perl.exe 可执行文件的路径。如有必要,请修改此路径。
- 若尚未启动,请启动 Apache
- 在浏览器中访问 URL http://localhost/cgi-bin/heure.pl。您将看到以下页面:

10.9. PWS 服务器
10.9.1. 安装
PWS(个人 Web 服务器)是微软 IIS(Internet Information Server)的个人版。IIS 可在 NT 和 2000 系统上运行。 在 Win9x 系统上,PWS 通常包含在 Internet Explorer 的安装包中。但默认情况下不会安装。您必须执行 IE 的自定义安装,并选择安装 PWS。此外,Windows 95 的 NT 4.0 选件包中也提供了 PWS。
10.9.2. 初步测试
PWS 网页的根目录为 drive:\inetpub\wwwroot,其中 drive 是指您安装 PWS 的磁盘。下文我们将假设该磁盘为 D 盘。因此,URL http://machine/rep1/page1.html 对应于文件 d:\inetpub\wwwroot\rep1\page1.html。 PWS 服务器将任何带有 .asp(Active Server Pages)扩展名的文件解释为必须执行的脚本,以生成 HTML 页面。PWS 默认运行在 80 端口上。Apache Web 服务器也是如此……因此,如果您同时拥有这两个服务器,则必须停止 Apache 才能使用 PWS。 另一种解决方案是将 Apache 配置为在不同的端口上运行。因此,在 Apache 配置文件 [httpd.conf] 中,将 Port 80 这一行替换为 Port 81;Apache 现在将在 81 端口上运行,并可与 PWS 同时使用。如果 PWS 已启动,而您请求 URL http://localhost,您将看到类似于以下内容的页面:

10.9.3. PHP - PWS 链接
- 下面是一个用于修改注册表的 .reg 文件。双击此文件即可修改注册表。此处,所需的 DLL 文件位于 d:\php4 目录下,与 PHP 可执行文件在一起。请根据需要进行修改。DLL 路径中的反斜杠 (\) 必须双写。
REGEDIT4
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w3svc\parameters\Script Map]
".php"="d:\\php4\\php4isapi.dll"
- 重启计算机以使注册表更改生效。
- 在 d:\inetpub\wwwroot(即 PWS 服务器的根目录)下创建一个名为 "php" 的文件夹。完成后,打开 PWS 并转到 "高级" 选项卡。点击 "添加" 按钮以创建一个虚拟目录:
- 确认设置并重启 PWS。将文件 intro.php 放置在 d:\inetpub\wwwroot\php 目录下,该文件仅包含以下一行代码:
- 从 PWS 服务器访问 URL http://localhost/php/intro.php。您应该会看到 Apache 已显示的 PHP 信息列表。
10.10. Tomcat:Java Servlet 和 JSP(Java 服务器页面)
Tomcat 是一款 Web 服务器,它通过 Servlet(由 Web 服务器执行的 Java 程序)或 JSP(Java Server Pages,将 Java 代码与 HTML 代码结合)来生成 HTML 页面。它相当于微软 IIS/PWS 服务器上的 ASP(Active Server Pages),后者将 VBScript 或 JavaScript 代码与 HTML 代码结合。
10.10.1. 安装
Tomcat 可通过以下网址获取:http://jakarta.apache.org。下载 .exe 安装文件。运行该程序时,系统会首先提示您选择要使用的 JDK。Tomcat 需要 JDK 才能进行安装,并随后编译和执行 Java Servlet。因此,在安装 Tomcat 之前,您必须已安装 Java JDK。建议使用最新版本的 JDK。安装过程将创建一个 <tomcat> 目录结构:

只需将此压缩包解压到某个目录中即可。请选择路径中仅包含无空格名称的目录(例如,不要使用“Program Files”),因为 Tomcat 安装过程中存在一个错误。例如,可以使用 C:\tomcat 或 D:\tomcat。我们将此目录称为 <tomcat>。在其内部,你会发现一个名为 jakarta-tomcat 的文件夹,其中包含以下目录结构:
LOGS <REP> 15/11/00 9:04 logs
LICENSE 2 876 18/04/00 15:56 LICENSE
CONF <REP> 15/11/00 8:53 conf
DOC <REP> 15/11/00 8:53 doc
LIB <REP> 15/11/00 8:53 lib
SRC <REP> 15/11/00 8:53 src
WEBAPPS <REP> 15/11/00 8:53 webapps
BIN <REP> 15/11/00 8:53 bin
WORK <REP> 15/11/00 9:04 work
10.10.2. 启动/停止 Tomcat Web 服务器
Tomcat 是一个 Web 服务器,就像 Apache 或 PWS 一样。要启动它,请使用“程序”菜单中的链接:
以启动 Tomcat | |
以停止它 |
启动 Tomcat 时,会出现一个 DOS 窗口,显示以下内容:

您可以将此 DOS 窗口最小化。只要 Tomcat 仍在运行,该窗口就会保持打开状态。随后,您可以进行首次测试。Tomcat Web 服务器运行在 8080 端口上。Tomcat 运行后,请打开网页浏览器并输入 URL http://localhost:8080。您应该会看到以下页面:

点击“Servlet Examples”链接:

点击 RequestParameters 的“执行”链接,然后点击 Source 的“执行”链接。您将初步了解什么是 Java Servlet。您也可以对 JSP 页面上的链接进行同样的操作。
要停止 Tomcat,请使用“程序”菜单中的“停止 Tomcat”链接。
10.11. JBuilder
JBuilder 是一个 Java 应用程序开发环境。若要构建不带图形界面的 Java Servlet,严格来说并不需要此类环境。仅需一个文本编辑器和 JDK 即可。然而,与前一种方法相比,JBuilder 具有以下优势:
- 调试便捷:编译器会高亮显示程序中的错误行,且可轻松定位至这些位置
- 代码补全:使用 Java 对象时,JBuilder 会直接显示其属性和方法列表。鉴于大多数 Java 对象拥有大量难以记忆的属性和方法,此功能非常实用。
可在 http://www.borland.com/jbuilder 获取 JBuilder。您必须填写一份表格才能获取该软件。激活密钥将通过电子邮件发送。以安装 JBuilder 7 为例,操作步骤如下:
- 下载了三个 ZIP 文件:一个用于应用程序,一个用于文档,一个用于示例。JBuilder 网站上为每个 ZIP 文件都提供了单独的链接。
- 首先安装应用程序,然后安装文档,最后安装示例
- 首次启动应用程序时,系统会要求输入激活密钥:即通过电子邮件发送给您的那个密钥。在第 7 版中,该密钥实际上是一个完整的文本文件,可将其放置在 JB7 安装文件夹中。当系统要求输入密钥时,您只需指定该文件即可。完成此操作后,系统将不再要求输入密钥。
若想使用 JBuilder 构建 Java Servlet,需要进行一些有用的配置。所谓的 JBuilder “个人版”是精简版,其中未包含使用 Java 进行 Web 开发所需的所有类。您可以配置 JBuilder 以使用 Tomcat 提供的类库。具体方法如下:
- 启动 JBuilder

- 启用“工具/配置 JDK”选项

在上面的“JDK 设置”部分,“名称”字段通常显示为“JDK 1.3.1”。如果您拥有更新版的 JDK,请使用“更改”按钮指定其安装目录。在上例中,我们指定了目录 E:\Program Files\jdk14,其中安装了 JDK 1.4。从现在起,JBuilder 将使用此 JDK 进行编译和执行。 在(类、源代码、文档)部分,您将看到 JBuilder 将扫描的所有类库列表——在此示例中,即来自 JDK 1.4 的类。该 JDK 包含的类对于 Java Web 开发尚不充分。要添加其他类库,请使用“添加”按钮并选择您想要使用的其他 .jar 文件。.jar 文件即为类库。 Tomcat 4.x 包含 Web 开发所需的所有类库。它们位于 <tomcat>\common\lib 目录下,其中 <tomcat> 是 Tomcat 的安装目录:

我们将通过“添加”按钮,将这些库逐一添加到 JBuilder 扫描的库列表中:

从现在起,您可以编译符合 J2EE 标准的 Java 程序,包括 Java Servlet。JBuilder 仅用于编译;后续的执行将由 Tomcat 根据本课程所述的流程处理。
10.12. Cassini Web 服务器
若需使用微软的 .NET 平台,可采用 Cassini Web 服务器。该服务器可通过名为 [WebMatrix] 的另一款产品获取,这是一款面向 .NET 平台的免费 Web 开发环境,其下载地址为:

请仔细遵循产品安装步骤:
- 下载并安装 .NET 平台(截至 2004 年 3 月为 1.1 版)
- 下载并安装 WebMatrix
- 下载并安装 MSDE(Microsoft Data Engine),这是 SQL Server 的精简版。
安装完成后,[WebMatrix] 产品将出现在已安装的程序列表中:

[ASP.NET] WebMatrix 链接将启动 ASP.NET 开发集成开发环境(IDE):

[类浏览器] 链接将启动一个用于浏览 .NET 类的工具:

为测试安装效果,让我们启动 [WebMatrix]:
1234

首次启动时,[WebMatrix] 会提示您输入新项目的规格。这是其默认配置。您可以进行设置,使其在启动时不再显示此对话框。之后,您可以通过 [文件/新建文件] 选项访问它。 [WebMatrix] 允许您为各种 Web 应用程序创建模板。在上文中,我们在 (1) 中指定要创建一个 [ASP.NET 页面] 应用程序,即一个 Web 页面。在 (2) 中,我们指定该 Web 页面的存放文件夹。在 (3) 中,我们输入页面名称。该名称必须带有 .aspx 扩展名。 最后,在 (4) 中,我们指定使用 VB.NET 语言进行开发;[WebMatrix] 还支持 C# 和 J# 语言。
完成上述操作后,[WebMatrix] 将显示 [demo1.aspx] 文件的编辑页面。我们在其中输入以下代码:

- [设计] 选项卡允许您“设计”要构建的网页。其工作原理与 Windows 应用程序开发 IDE 类似。
- 在 [设计] 选项卡中对网页进行的图形化设计,将在 [HTML] 选项卡中生成相应的 HTML 代码
- 网页可能包含会触发需要响应的事件的控件,例如按钮。这些事件将由放置在 [代码] 选项卡中的 VB.NET 代码进行处理
- 最终,demo1.aspx 文件是一个结合了 HTML 代码和 VB.NET 代码的文本文件,它由 [设计] 选项卡中创建的图形化设计、[HTML] 选项卡中手动添加的 HTML 代码以及 [代码] 选项卡中放置的 VB.NET 代码共同组成。整个文件可在 [全部] 选项卡中查看。
- 经验丰富的 ASP.NET 开发人员无需借助任何 IDE,即可直接使用文本编辑器构建 demo1.aspx 文件。
让我们选择 [All] 选项。我们可以看到 [WebMatrix] 已经生成了一些代码:
<%@ Page Language="VB" %>
<script runat="server">
' Insert page code here
'
</script>
<html>
<head>
</head>
<body>
<form runat="server">
<!-- Insert content here -->
</form>
</body>
</html>
我们在此不作此代码的解释。我们将按如下方式对其进行转换:
<html>
<head>
<title>Démo asp.net </title>
</head>
<body>
Il est <% =Date.Now.ToString("hh:mm:ss") %>
</body>
</html>
上面的代码是 HTML 和 VB.NET 代码的混合。它被放置在 <% ... %> 标签内。要运行此代码,我们使用 [视图/启动] 选项。[WebMatrix] 随后会启动 Cassini Web 服务器(如果它尚未运行)

您可以接受此对话框中提供的默认值,并选择 [启动] 选项。此时 Web 服务器即处于活动状态。[WebMatrix] 随后将在其运行的计算机上启动默认浏览器,并请求 URL http://localhost:8080/demo1.aspx:

也可以在 [WebMatrix] 外部使用 Cassini 服务器。服务器可执行文件位于 <WebMatrix>\<version>\WebServer.exe,其中 <WebMatrix> 是 [WebMatrix] 的安装目录,<version> 是其版本号:

打开命令提示符窗口,并导航至 Cassini 服务器文件夹:
E:\Program Files\Microsoft ASP.NET Web Matrix\v0.6.812>dir
...
29/05/2003 11:00 53 248 WebServer.exe
...
让我们不带任何参数运行 [WebServer.exe]:
此时会弹出一个帮助窗口:

[WebServer] 应用程序(也称为 Cassini Web 服务器)接受三个参数:
- /port:Web 服务的端口号。可以是任意数字。默认值为 80
- /path:磁盘上文件夹的物理路径
- /vpath:与前述物理文件夹关联的虚拟文件夹。请注意,语法并非 /path=path,而是 /vpath:path,这与上文帮助面板所述不同。
让我们将文件 [demo1.aspx] 放置在以下文件夹中:

我们将虚拟文件夹 [/webmatrix] 与物理文件夹 [d:\data\devel\webmatrix] 关联起来。Web 服务器可通过以下方式启动:
E:\Program Files\Microsoft ASP.NET Web Matrix\v0.6.812>webserver /port:100 /path:"d:\data\devel\webmatrix" /vpath:"/webmatrix"
Cassini 服务器现已启动,其图标会出现在任务栏中。若双击该图标:

您将看到服务器的启动设置。您还可以选择停止 [Stop] 或重启 [Restart] Web 服务器。若点击 [Root URL] 链接,服务器的 Web 目录树根目录将在浏览器中打开:

点击 [demos] 链接:

然后点击 [demo1.aspx] 链接:

我们可以看到,如果物理文件夹 P=[d:\data\devel\webmatrix] 已映射到虚拟文件夹 V=[/webmatrix],且服务器在 100 端口上运行, 那么物理位置位于 [P\demos] 的网页 [demo1.aspx],将可通过 URL [http://localhost:100/V/demos/demo1.aspx] 在本地访问。
在此特定案例中,我们已证明 ASP.NET Web 开发可以通过使用简单的文本编辑器编写网页,并借助 Cassini Web 服务器进行测试来完成。无论应用程序的复杂程度如何,这一方法都适用。[WebMatrix] IDE 提供了一些开发便利,但并不多。像 Visual Studio.NET 这样的工具功能要强大得多,但它是商业产品。


