Skip to content

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. 在哪里可以找到这些工具

Netscape
http://www.netscape.com/(下载链接)
Internet Explorer
http://www.microsoft.com/windows/ie/default.asp
PHP
http://www.php.net
http://www.php.net/downloads.php(Windows 二进制文件)
PERL
http://www.activestate.comhttp://www.activestate.com/Products/
http://www.activestate.com/Products/ActivePerl/
VBScript、JavaScript
http://msdn.microsoft.com/scripting(点击“Windows Script”链接)
JAVA
http://java.sun.com/
http://java.sun.com/downloads.html(JSE)
http://java.sun.com/j2se/1.4/download.html
Apache
http://www.apache.org/
http://www.apache.org/dist/httpd/binaries/win32/
PWS
包含在 Windows 95 的 NT 4.0 选件包中
包含在 Windows 98 光盘中
http://www.microsoft.com/ntserver/nts/downloads/recommended/NT4OptPk/win95.asp
IIS
(Windows NT/2000)
http://www.microsoft.com
Tomcat
http://jakarta.apache.org/tomcat/
JBuilder
http://www.borland.com/jbuilder/
http://www.borland.com/products/downloads/download_jbuilder.html
EasyPHP
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

安装程序界面如下所示:

Image

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

Image

easyphp.exe
应用程序可执行文件
apache
Apache 服务器目录结构
mysql
MySQL 数据库目录
phpMyAdmin
phpMyAdmin 应用程序目录结构
PHP
PHP 目录结构
www
由 EasyPHP Apache 服务器提供的网页目录树的根目录
cgi-bin
用于存放 Apache 服务器 CGI 脚本的目录

EasyPHP 的主要优势在于该应用程序已预先配置好。因此,Apache、PHP 和 MySQL 已配置为协同工作。当您通过“程序”菜单中的快捷方式启动 EasyPHP 时,屏幕右下角会出现一个图标。

这是一个带有红色圆点的字母 E,如果 Apache Web 服务器和 MySQL 数据库正在运行,该图标会闪烁。右键单击它即可访问菜单选项:

Image

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

Image

8.1.3.1. PHP 管理

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

Image

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

Image

例如,上图显示了使用 MySQL 数据库所需的函数已安装。

“设置”按钮会显示 MySQL 数据库管理员的用户名和密码

Image

虽然本快速概述不涉及 MySQL 数据库的使用,但很明显,应为数据库管理员设置密码。

8.1.3.2. Apache 管理

仍在 EasyPHP 管理页面上,“您的别名”链接允许您为目录定义别名。这使您能够将网页放置在 EasyPHP 目录树中 www 目录之外的位置。

Image

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

Image

并点击“验证”按钮,以下内容将被添加到 <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 图标停止并重启服务器:

Image

为了完成本示例,现在我们可以将网页放置在目录树 e:\data\serge\web 中:

C:\winnt\system32>dir e:\data\serge\web\html\balises.htm

14/07/2002  17:02                3 767 balises.htm

并使用别名 st 请求此页面:

Image

在此示例中,Apache 服务器已配置为在 81 端口上运行。其默认端口为 80。这由我们之前看到的 httpd.conf 文件中的以下行控制:

Port 81

8.1.3.3. Apache 配置文件 htpd.conf

若需对 Apache 进行精细调整,您需要手动编辑其 httpd.conf 配置文件,该文件位于 <easyphp>\apache\conf 文件夹中:

Image

以下是该配置文件中需要注意的几个要点:

角色
ServerRoot "D:/Program Files/Apache Group/Apache"
指定包含 Apache 目录结构的文件夹
端口 80
指定 Web 服务器将使用的端口。通常为 80。通过修改此行,您可以让 Web 服务器在其他端口上运行
ServerAdmin root@istia.univ-angers.fr
Apache 服务器管理员的电子邮件地址
ServerName stahe.istia.uang
Apache 服务器运行所在的机器名称
ServerRoot "E:/Program Files/EasyPHP/apache"
Apache 服务器的安装目录。当配置文件中出现相对文件名时,它们都是相对于此目录的。
DocumentRoot "E:/Program Files/EasyPHP/www"
服务器所提供网页树的根目录。在此,URL http://machine/rep1/fic1.html 将对应文件 E:\Program Files\EasyPHP\www\rep1\fic1.html
<Directory "E:/Program Files/EasyPHP/www">
设置前一个文件夹的属性
ErrorLog logs/error.log
logs 文件夹,因此实际路径为 <ServerRoot>\logs\error.logE:\Program Files\EasyPHP\apache\logs\error.log。若发现 Apache 服务器无法正常工作,请检查此文件。
    ScriptAlias /cgi-bin/ "E:/Program Files/EasyPHP/cgi-bin/"
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
<Directory "E:/Program Files/EasyPHP/cgi-bin/">
设置上述文件夹的属性
LoadModule php4_module "E:/Program Files/EasyPHP/php/php4apache.dll"
AddModule mod_php4.c
用于加载模块的行,使 Apache 能够与 PHP4 协同工作。
    AddType application/x-httpd-php .phtml .pwml .php3 .php4 .php .php2 .inc
将这些文件扩展名设置为被视为 PHP 文件

8.1.3.4. 使用 PhpMyAdmin 管理 MySQL

在 EasyPHP 管理页面上,点击 PhpMyAdmin 按钮:

Image

“首页”下方的下拉列表显示了当前的数据库。
括号中的数字表示表的数量。若选择某个数据库,其表将被显示:

该网页提供了针对数据库的多种操作:

Image

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

Image

这里只有一个用户: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。您可以进行以下测试:

  1. 编写以下脚本:
//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
  1. 将此程序保存为 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 虚拟机执行。

  1. 运行程序:
D:\data\java\essais>c:\jdk1.3\bin\java heure
Il est 10:44:2

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
conf
Apache 配置文件目录
logs
Apache 日志文件目录(监控)
bin
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 信息:

Image

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

Image

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/ &quot;&lt;cgi-bin&gt;&quot; 这行配置,并重启 Apache 服务器。随后执行以下测试:

  1. 编写脚本:
#!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
;
  1. 将此脚本放置在 <cgi-bin>\heure.pl 中,其中 <cgi-bin> 是可接收 CGI 脚本的目录(参见 httpd.conf)。第一行 #!c:\perl\bin\perl.exe 指定了 perl.exe 可执行文件的路径。如有必要,请修改此路径。
  2. 若尚未启动,请启动 Apache
  3. 在浏览器中访问 URL http://localhost/cgi-bin/heure.pl。您将看到以下页面:

Image

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,您将看到类似于以下内容的页面:

Image

8.1.9.3. PHP - PWS 链接

  1. 下面是一个用于修改注册表的 .reg 文件。双击此文件即可修改注册表。此处,所需的 DLL 文件与 PHP 可执行文件一同位于 d:\php4 目录下。请根据需要进行修改。DLL 路径中的反斜杠 (\) 必须使用双反斜杠。
REGEDIT4

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w3svc\parameters\Script Map]
".php"="d:\\php4\\php4isapi.dll"
  1. 重启计算机以使注册表更改生效。
  1. d:\inetpub\wwwroot(即 PWS 服务器的根目录)下创建一个名为 "php" 的文件夹。完成后,打开 PWS 并转到“高级”选项卡。点击“添加”按钮以创建一个虚拟目录:

目录/浏览:d:\inetpub\wwwroot\php

别名:php

勾选“运行”复选框。

  1. 确认设置并重启 PWS。将文件 intro.php 放置在 d:\inetpub\wwwroot\php 目录下,该文件仅包含以下一行代码:

<? phpinfo() ?>

  1. 从 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> 目录结构:

Image

安装过程仅需将此压缩包解压到某个目录中。请选择路径中仅包含无空格名称的目录(例如,不要使用“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
停止 Tomcat
以停止它

启动 Tomcat 时,会出现一个 DOS 窗口,显示以下内容:

Image

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

Image

点击“Servlet 示例”链接:

Image

点击 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

Image

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

Image

在上方的“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 的安装目录:

Image

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

Image

从现在起,您可以编译符合 J2EE 标准的 Java 程序,包括 Java Servlet。JBuilder 仅用于编译;后续的执行将由 Tomcat 根据本课程所述的流程进行处理。