Dreamweaver 4.0高级应用技巧(下) 陈冰 2001年 60期 #1 五、关于Java Applet     Java是一种与平台无关的程序开发语言,它可以让你写出能够嵌入到页面中的轻量级的应用程序-Java Applet。在你创建了一个Java Applet以后,可以使用Dreamweaver将这个Applet嵌入到HTML文档中。Dreamweaver使用APPLET标签标记对Applet文件的引用。    1.插入Java Applet     要插入一个Java Applet:    1)首先在文档窗口的设计视图中,在要插入Applet的地方放置插入点。    2)单击对象面板Special类目中的Insert Applet(插入Applet)按钮。    3)在出现的对话框中,选择一个Applet文件。     Applet占位符将在文档中出现。如(^60090412v^)     下面是这个Applet在浏览器中的显示效果。如(^60090412w^)    2.慎重的使用Java Applet     在充分了解Java Applet优缺点的基础上慎重的使用它。     Java Applet的优点:     Java设计上的平台无关性,使得Java Applet可以在所有装有Java虚拟机的计算机中很好的工作。这极大的保证了你的页面在IE和Netscape以及其他多种浏览器之间保持良好的兼容性。同时由于Java良好的安全性,使用Java Applet比ActiveX或任何其他的插件都具有更高的安全性。例如ActiveX可以重写你的文件系统,但这在Java中是被绝对禁止的。     听起来Java Applet真的很不错,是的,Applet的确不错。但我要说的却是,只要有可能就绝不要使用Java Applet。因为Java Applet有一个缺点-一个足以致命的缺点。     Java Applet的缺点:     Java Applet的这一致命的缺点就是它的速度。正因为Java是被设计为与平台无关的,因此,当编译Java时,并不像别的语言那样被编译成针对某种特定平台的机器码,而是被编译成与平台无关的通用二进制代码,这就是噩梦的根源。     当你下载一个含有Java Applet的页面时,Applet中的这种二进制代码就通过网络传送到你的浏览器,在你的浏览器的内部装有一个Java虚拟机,为了使你的机器能读懂这个Applet的内容,浏览器首先要启动这个Java虚拟机,然后Java虚拟机将会花大力气将Applet中的二进制代码编译成机器语言。这样,这种一次编译到处运行的特性为程序员所节省下来的时间就花费在了每个访问者的身上了。更不幸的是,这种含有Applet的页面在每次请求class文件时都需要重新下载,这使得整个的下载速度变得奇慢无比,会将所有的人逼疯。    3.设置Java Applet特性     在插入了一个Java applet之后,你可以使用特性检查员为其设置参数。如(^60090412x^)    Name(名字)-为Applet指定一个名字,以便可以在脚本中识别它。在特性检查员中左上方无标记的域中输入一个名字。     W(宽度)和H(高度)-以像素指定Applet的宽度和高度。     Code(代码)-指定Applet的代码文件。输入一个文件名,或单击文件夹图标浏览并选择一个Applet代码文件(扩展名为.class)。     Base(基)-指定包含所选Applet文件的文件夹。当你选择了一个Applet时,这个域会被自动地填写,如果所选择的Applet与当前页面位于同一文件夹,则该域为空。     Align(对齐)-决定Applet在页面上将怎样被对齐。     Alt-在无可奈何情况下的一种妥协选择,如果用户的浏览器不支持Applet或者用户关闭了浏览器的Java功能,你可以使用这个选项给用户一些提示。如果你输入了文本,Dreamweaver会将其赋给APPLET标签的ALT属性。如果你选择了一个图像,Dreamweaver会在APPLET标签中插入一个IMG标签。     例子:                  V Space(垂直空间)和H Space(水平空间)-以像素指定Applet上下和左右两边保留的空白。     Parameters(参数)-打开一个对话框。在这里你可以输入一些传递给Applet的参数。   #1 六、在客户端处理表单     表单由FORM标签的ACTION属性中指定的脚本或应用程序来处理。选择一个表单,就可以在特性检查员里看看关联的ACTION是什么。     最简单的表单使用JavaScript或VBScript在客户端执行所有的表单处理(相对于将表单数据发送到服务器端处理来说)。例如:经常出现的一种情形是当你在某些网站上申请某些服务的时候,经常会有一个声明页出现,让你选择同意(Yes),或是不同意(No),当然我们通常都是不假思索的点击"Yes"。下面这个例子简单的模拟了这种情形。如(^60090412y^)     在这个例子中,当你选择了"同意",然后单击提交按钮时,会有一个显示Yes的警告框弹出,而当你选择了"不同意",然后单击提交按钮时,会有一个显示No的警告框弹出。如(^60090412z^)     首先创建这个简单的包含表单的页面:    1) 输入页面上的那些文本。    2) 插入表单,并在表单中放置两个单选按钮。    3) 在表单中放置一个按钮,将按钮的TYPE属性值指定为Submit。    好了,表单的外观我已经做好了,现在为了使当单击Submit按钮时,可以处理表单(进行表单的确认工作),我需要将一个行为捆绑到Submit按钮上,这个行为我是用JavaScript来编写的,你也可以选择其他的脚本语言。    1) 选择Submit按钮,然后打开行为面板。   2) 单击行为面板中的"+",从弹出的菜单中选择Call JavaScript。   3) 出现Call JavaScript对话框,在JavaScript域中输入要调用的JavaScript函数名,在这里我输入了processForm()。如(^60090412a1^)    4) 点击OK。     现在调用的工作也完成了,剩下就是编写一段用来处理表单的JavaScript函数processForm()了。这个processForm()函数如下:    function processForm(){    if (document.forms[0].elements[0].checked){    alert('Yes');    }else{    alert('No');    }    }    执行Insert > Invisible Tags > Script,在Insert Script对话框中输入上面的代码。如(^60090412b1^)     至此,所有工作都已完成,你可以按F12在浏览器中看看结果了。     你可以使用客户端脚本处理许多表单处理任务,但用这种方法你不能保存用户输入的信息,也不能将这些信息发送到别处。要达到这些目的,你需要使用像CGI这样的服务器端应用程序,你可以用你熟悉的任何语言编写CGI脚本,例如:Perl、C\C++、Java等等。在网上有许多站点提供大量的多种多样的免费的CGI程序,你可以下载它们,然后对其进行修改以更符合你的要求。   #1 七.在服务器端处理表单    要在服务器端处理你的表单,你必须要编写能够处理表单的CGI程序。因此,为了在编写CGI程序的过程中可以调试和修改你的CGI程序,你通常需要将你的个人计算机系统设置成一个Web服务器,这也使得你可以直观的看到这个CGI程序在你真正要上传的服务器上是否会以你希望的方式工作。    1、在Windows系统上安装Web服务器并调试CGI程序    CGI的主要的功能是在WWW环境下,通过从客户端传递一些数据给WEB服务器,再由WEB服务器去启动所指定的程序代码来完成特定的工作。CGI只能运行在WEB服务器上,它的工作就是对数据执行特定的控制并且产生并传回所需的文件。    要想编写和调试CGI程序(在这里我只讨论在Windows 9x系统下的情况),你需要两样东西:一种用于编写CGI程序的语言以及一个WEB服务器软件。也许你还会需要其它的东西(比如充满食物的冰箱、泡泡糖、CD、拖鞋,以及一个吻),但大多数人有这两样就够了。    关于编写CGI程序的语言的选择:    你可以用你喜欢的任何一种语言来编写CGI程序。VB、VFP、VBScript、AppleScript、JavaScript、Jscript、Java、C\ C++、UNIX Shell、TCL、PHP/FI以及Perl,只要这种语言具有标准的输入、输出和环境变量。    然而遗憾的是并不是所有的语言写的CGI都被所有服务器上的操作系统所支持。通过这张表你可以很清楚的看到何种语言编写的CGI的生存能力。    不同语言编写的CGI程序对各种不同操作系统的兼容性列表。如(^60090412c1^)    很显然C++、C、Perl三种语言更胜一筹,但当要处理的数据是大量的字符和字符串时,Perl较C++/C的优越性就显露无遗。而CGI程序除了处理字符串几乎不干别的。Perl是什么?Perl就是Practical Extraction and Reporting Language(实际抽取和报告语言),专门抽取字符串、专门打报告的语言。    话说到这份上,我相信没有人会不选择用Perl来开发CGI程序,而令人振奋的是Perl是免费的。    你可以在http://www.activestate.com/ActivePerl/download.htm上得到Perl for Win32的版本ActivePerl。    关于ActivePerl的安装没有任何可说的,你听了一定觉得这是个好消息。    关于这个WEB服务器软件:    这个WEB服务器软件的作用是将你的PC变成一个WEB服务器。这样,无需连接Internet,你就可以在你的机器上轻松的调试CGI程序。当然,你可以拒绝使用它,但那样的话,你就不得不事先申请一个允许运行你的CGI程序的WEB服务器,并为调通某个魔鬼般的CGI程序而不得不一遍遍的拨号、登陆、上传、测试、失败、断线、修改、再拨号、…………,直到你完全崩溃。    关于这个WEB服务器软件的选择,你可以有这样几个考虑:    ● Microsoft的Personal Web Server(简称PWS)-这是许多相关书籍中提到次数最多的软件,印象中对它没有什么不好的指责(当然也没有什么好的认可),给人的感觉是它已经默默的运行了好久,虽然没有什么太佳的表现,但也没出过什么故障。然而,根据我的亲身体验,一旦你选择了PWS,那所有的噩梦与焦躁将蜂拥而至。因为由于PWS本身的疏忽,导致其找不到Perl的执行程序,如果如此沉重的打击能一下子结果了PWS倒也没什么想头。可怕的是一种关于PWS的传说正在蔓延,该说声称通过修改Windows 9x的注册表可以使PWS找到Perl的执行程序。于是,所有选择了PWS的小可怜们都在四处寻找这个神秘的方法。我有理由相信他们找到的都是含有错误的方法。比如他们有可能找到这样的叙述:     在注册表的HKEY_LOCAL_MACHINE/System/Currentcontrolset/Services/w3svc/parameters/script map/里写.pl=C:\perl\bin\perl.exe %s %s。当你兴冲冲的在注册表中沿着指示的路径找到这个Script Map并点击它后,你会发现屏幕的右边只有这样的东西。如(^60090412d1^)     你不会清楚这句像是指示路径的pl=C:\perl\bin\perl.exe %s %s代码,到底是该作为"默认"的键值还是需另外再新建名称。点击鼠标右键后,你会发现新建又有下面四种选择,到底该新建哪一个?四种可新建的名称。如(^60090412e1^)     实际上,即便你试过了所有的排列组合,你也不会成功的。因为那段代码本身就是不明确和有错误的。我也曾在网上见过不少文章和论坛里写有类似的代码,但令人震惊的是所有这些代码没有一个是无错误和使人感到明朗的(我想这可能是由于无知及抄袭所导致的)。     但我仍要感谢这些提供了错误代码的朋友,毕竟这些代码给了我很大的启示。正确的修改方法是这样的:    1)在注册表中,沿着下面的这条路径找到Script Map。     HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W3SVC\Parameters\Script Map,单击Script Map,然后在右边的屏幕上点击鼠标右键,选择新建字符串值,为这个新建的字符串命名为.pl,然后在.pl上点击鼠标右键,在弹出的菜单中选择"修改",此时屏幕会弹出一个输入框。如(^60090412f1^)     在这里因为我的Perl是安装在D:\perl里的,所以我是如此填的。如果你的Perl被安装到了其它的硬盘或目录,请根据实际情况对路径作相应修改。最后按"确定"。     此时注册表已经修改好了,我的Script Map项里看起来是这个样子的。如(^60090412g1^)    2)退出注册表程序,然后重新启动计算机。重新启动后,你就可以调试你的CGI程序了。     对某些朋友而言,你或许想知道要如何安装PWS。Windows 95与Windows 98用户的安装有所不同。    ● Windows 95:    a、在"网上邻居"上击鼠标右键选择"属性",在弹出的对话框中"配置"标签里单击"添加"按钮。如果你把"网上邻居"搞丢了,请单击"开始"-"设置"-"控制面板",然后双击"网络"图标,同样在弹出的对话框中"配置"标签里单击"添加"按钮。    B、在弹出的"选择网络组件类型"对话框中,选择"服务",然后单击"添加",在弹出的对话框中"厂商"一栏中选择"Microsoft",在"网络服务"栏中选择"Personal Web Server",然后单击"确定"按钮。这时Windows 95将自动安装Personal Web Server。安装完成后,"控制面板"中会出现"个人Web服务器"图标,双击图标就可以对自己的个人Web服务器进行设置。    C、设置CGI程序的运行目录。在"控制面板"中双击"个人Web服务器"图标,选择"Administration",这时Personal Web Server会自动启动你的浏览器,显示Internet服务管理页面。选择"WWW Administration",选择"Directory",然后点击"添加",在WWW服务中加入你的cgi-bin目录,并将该目录的属性设为可执行。同时,建议你把它虚拟为"cgi-bin"目录,这样你就可以在你的HTML中用"/cgi-bin/****.cgi"来调用CGI程序。全部设置好之后,可以在浏览器中输入"http://你的机器名称"或者"http://你的机器的IP"(通常是127.0.0.1)来检验一下你的设置。    ● Windows 98:     Windows 98中的PWS已经独立出来了,你可以在Windows 98光盘的add-ons\pws\里找到。安装时选择"典型"就可以了,其它没什么可说的。再次启动后,你的任务栏里就多了一个PWS的小图标,双击它可进行一些有限的设置,比如对cgi-bin目录属性的设置等等。很简单,你肯定能看懂,我就不多说了,另外还有一个简单的教程,你一分钟就可以看完。    ● Apache-Apache是一个被广泛使用的WEB服务器软件。你可以在Apache的网站上免费下载它的Win32版本,下载地址是:http://www.apache.org/dist/apache_1_3_9_win32.exe。     你也可以在Apache的网站上http://www.apache.org上找到大量的技术文档。但除非你有一些经验或英文很好,对大多数的CGI初学者而言,Apache会如同洪水猛兽一样的难以控制。能将它很好设置并使其无故障的工作不是件容易的事情,对于初学者,我不推荐你使用它。但如果你愿意接受一个挑战的话,它的难度是会令你感到满意的。    ● Sambar-Sambar是能够且只能够运行于Windows 9x/NT系统上的最好的WEB服务器之一,而且完全免费。你可以在下面这个地址得到Sambar:     http://www.powertv.com/sambar/SAMBAR42.ZIP。     你也可以在Sambar的主页上得到一些帮助:     http://www.sambar.com/help/index.htm。     Sambar以其小巧的身形、智能的安装、强大的功能而成为初学者最好的选择之一。你除了能用它调试CGI以外,还可以建立自己的FTP文件下载站点、Mail服务器,HTTP、SSL、NNTP、SMTP、POP3、IMAP4、FTP以及Real Audio/Video的代理、虚拟域名支持、强劲的搜索引擎等等。另外值得一提的是Sambar里已经包含了Perl,如果你下载了Sambar就不必再下载Perl了,推荐使用Sambar。    ● WebSite Professional-"网站专家",一听这名字就可想而知了。不论从功能、效率、稳定性,还是安全性上考虑,WebSite Professional都是绝对的专家。只可惜它不是免费的。但你仍可以下载它的30天试用版来过过瘾。如果你不是有特殊的需要,你不必下载它的完整版本,因为它是重量级的。要想让服务器工作起来,你只需要下载WebSite Pro Server and Basic Tools就可以了,下面的地址就是WebSite Professional的下载页面:     http://software.oreilly.com/download/wsp23demo_download.html     关于WebSite Professional的安装没有任何可说的,伟大的产品总能在保证其强大功能的同时提供良好的易用性和友好的用户界面。