8. 附录
8.1. Web开发工具
在此,我们将说明如何查找和安装网页开发所需的工具。部分工具的版本已有所更新,因此本文中的说明可能不再适用于最新版本。读者需据此调整操作……在网页编程课程中,我们将主要使用以下工具,这些工具均可免费获取:
- 一款支持显示 XML 的最新浏览器。本课程中的示例已在 Internet Explorer 6 上经过测试。
- 一个较新的 JDK(Java 开发工具包)。本课程中的示例已在 JDK 1.4 上经过测试。该 JDK 包含 Java 1.4 浏览器插件,可让浏览器使用 JDK 1.4 显示 Java 小程序。
- 用于编写 Java Servlet 的开发环境。本课程中使用的是 JBuilder 7。
- Web 服务器:Apache、PWS(个人 Web 服务器)、Tomcat。
- Apache将用于开发PERL(实用提取和报告语言)或PHP(个人主页)的Web应用程序
- PWS 将用于开发基于 ASP(Active Server Pages)或 PHP 的 Web 应用程序
- Tomcat 将用于开发基于 Java Servlet 或 JSP(Java Server Pages)的 Web 应用程序
- 数据库管理应用程序:MySQL
- EasyPHP:一款将 Apache Web 服务器、PHP 语言和 MySQL 数据库管理系统(DBMS)捆绑在一起的工具
8.1.1. Web 服务器、浏览器、脚本语言
- 主要 Web 服务器
- Apache(Linux、Windows)
- Internet Information Server (IIS) (NT)、Personal Web Server (PWS) (Windows 9x)
- 主要浏览器
- Internet Explorer (Windows)
- 网景 (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)
8.1.2. 在哪里可以找到这些工具
http://www.netscape.com/(下载链接) | |
http://www.microsoft.com/windows/ie/default.asp | |
http://www.php.net http://www.php.net/downloads.php(Windows 二进制文件) | |
http://www.activestate.comhttp://www.activestate.com/Products/ http://www.activestate.com/Products/ActivePerl/ | |
http://msdn.microsoft.com/scripting(点击“Windows Script”链接) | |
http://java.sun.com/ http://java.sun.com/downloads.html(JSE) http://java.sun.com/j2se/1.4/download.html | |
http://www.apache.org/ http://www.apache.org/dist/httpd/binaries/win32/ | |
包含在 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.borland.com/products/downloads/download_jbuilder.html | |
http://www.easyphp.org/ http://www.easyphp.org/telechargements.php3 |
8.1.3. EasyPHP
该应用程序非常方便,因为它在一个单一软件包中包含了以下内容:
- Apache Web 服务器(1.3.x)
- PHP 语言(4.x)
- MySQL 数据库管理系统 (3.23.x)
- MySQL 管理工具:PhpMyAdmin
安装程序界面如下所示:

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

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

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

8.1.3.1. PHP 管理
“PHP 信息”按钮可让您验证 Apache-PHP 组合是否运行正常:此时应显示一个 PHP 信息页面:

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

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

虽然本快速概述不涉及 MySQL 数据库的使用,但很明显,应为数据库管理员设置密码。
8.1.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 服务器的配置文件。因此,您也可以通过直接编辑该文件来实现相同的效果。通常,对 httpd.conf 文件的修改会立即被 Apache 应用。如果未立即生效,您需要通过 EasyPHP 图标停止并重启服务器:

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

在此示例中,Apache 服务器已配置为在 81 端口上运行。其默认端口为 80。这由我们之前看到的 httpd.conf 文件中的以下行控制:
8.1.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 | |
设置前一个文件夹的属性 | |
logs 文件夹,因此实际路径为 <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 文件 |
8.1.3.4. 使用 PhpMyAdmin 管理 MySQL
在 EasyPHP 管理页面上,点击 PhpMyAdmin 按钮:

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

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

这里只有一个用户:root,即 MySQL 管理员。通过点击“编辑”链接,您可以更改其密码,当前密码为空——这种做法对于管理员而言并不推荐。
关于 phpMyAdmin,我们不再赘述,这是一个功能丰富的程序,值得用数页篇幅来讨论。
8.1.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 的目录并运行它:
E:\data\serge\php\essais>"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
8.1.5. PERL
最好已安装 Internet Explorer。如果已安装,Active Perl 会对其进行配置,使其能够接受 HTML 页面中的 PERL 脚本,这些脚本将由 IE 自身在客户端执行。Active Perl 的网站地址为 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 窗口,导航至包含该脚本的目录,并运行它:
E:\data\serge\Perl\Essais>e:\perl\bin\perl.exe heure.pl
Il est 9:34:21
8.1.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 文件)。导航至该文件所在的目录并运行它:
E:\data\serge\windowsScripting\vbscript\poly\objets>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 文件)。导航至该文件所在的目录并运行它:
E:\data\serge\windowsScripting\javascript\poly\tableaux>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 的示例。要使用 PerlScript,您必须已安装 Active Perl。
<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 文件的扩展名)。导航至程序所在的文件夹并运行它:
E:\data\serge\windowsScripting\perlscript\essais>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 服务器上执行。如果脚本较为复杂,明智的做法是在 Web 环境之外进行测试,即如前所述在 Windows Script 容器中进行测试。 这样,您就可以仅测试脚本中不使用浏览器或服务器特定对象的功能。即使有此限制,该选项仍然很有用,因为调试在 Web 服务器或浏览器中运行的脚本通常非常不切实际。
8.1.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 目录中,您将找到 Java 编译器 javac.exe 和 Java 虚拟机 java.exe。您可以进行以下测试:
- 编写以下脚本:
//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 文件的目录并编译它:
D:\data\java\essais>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 虚拟机执行。
- 运行程序:
8.1.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 可执行文件 |
8.1.8.1. 配置
在 <Apache>\conf 目录中,您将找到以下文件:httpd.conf、srm.conf、access.conf。在 Apache 的最新版本中,这三个文件已被合并为 httpd.conf。我们已经介绍了该配置文件的关键要点。在下面的示例中,测试使用了 Apache 版本的 EasyPHP,因此使用的是其配置文件。 在此文件中,DocumentRoot(指定网页目录树的根目录)为 e:\program files\easyphp\www。
8.1.8.2. PHP - Apache 链接
为了进行测试,请创建名为 intro.php 的文件,内容仅包含以下这一行:
<? phpinfo() ?>
并将该文件放置在 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。您将看到以下页面:

8.1.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。您将看到以下页面:

8.1.9. PWS 服务器
8.1.9.1. 安装
PWS(个人 Web 服务器)是微软 IIS(Internet Information Server)的个人版。IIS 可在 NT 和 2000 系统上运行。 在 Win9x 系统上,PWS 通常包含在 Internet Explorer 的安装包中。但它并非默认安装。您必须执行 IE 的自定义安装,并选择安装 PWS。此外,它也可在 Windows 95 的 NT 4.0 选件包中获得。
8.1.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</mark> 这一行替换为 Port 81</mark>。Apache 现在将运行在 81 端口,并可与 PWS 同时使用。如果 PWS 正在运行,而您请求 URL http://localhost,您将看到类似于以下内容的页面:

8.1.9.3. PHP - PWS 链接
- 下面是一个用于修改注册表的 .reg 文件。双击此文件即可修改注册表。此处,所需的 DLL 文件与 PHP 可执行文件一同位于 d:\php4 目录下。请根据需要进行修改。DLL 路径中的反斜杠 (\) 必须使用双反斜杠。
REGEDIT4
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w3svc\parameters\Script Map]
".php"="d:\\php4\\php4isapi.dll"
- 重启计算机以使注册表更改生效。
- 在 d:\inetpub\wwwroot(即 PWS 服务器的根目录)下创建一个名为 "php" 的文件夹。完成后,打开 PWS 并转到“高级”选项卡。点击“添加”按钮以创建一个虚拟目录:
目录/浏览:d:\inetpub\wwwroot\php
别名:php
勾选“运行”复选框。
- 确认设置并重启 PWS。将文件 intro.php 放置在 d:\inetpub\wwwroot\php 目录下,该文件仅包含以下一行代码:
<? phpinfo() ?>
- 从 PWS 服务器请求 URL http://localhost/php/intro.php。此时应能看到 Apache 已显示的 PHP 信息列表。
8.1.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 代码结合。
8.1.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
8.1.10.2. 启动/停止 Tomcat Web 服务器
Tomcat 是一个 Web 服务器,就像 Apache 或 PWS 一样。要启动它,请使用“程序”菜单中的链接:
以启动 Tomcat | |
以停止它 |
启动 Tomcat 时,会出现一个 DOS 窗口,显示以下内容:

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

点击“Servlet 示例”链接:

点击 RequestParameters 旁边的“执行”链接,然后点击 Source 旁边的链接。这样你就能初步了解什么是 Java Servlet。你也可以对 JSP 页面上的链接进行同样的操作。
要停止 Tomcat,请使用“程序”菜单中的“停止 Tomcat”链接。
8.1.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,请使用“更改”按钮指定其安装目录。在上图中,我们指定了安装有 JDK 1.4 的目录 E:\Program Files\jdk14。从现在起,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 根据本课程所述的流程进行处理。


