风舞残阳 2008-4-1 11:22
利用Javascript建立Web应用
随着Internet/Intranet应用普及,越来越多的用户在设计上采用Client/Server[wiki]结构[/wiki],建立自己的Internet/Intranet应用。客户端[wiki]程序[/wiki]负责向Web[wiki]服务器[/wiki]发送请求,并负责从Web服务器接受和解释显示超文本。如果要生成动态、交互式Web页面,就必须通过公共网关接口(CGI),CGI程序可采用Perl,C++,JavaScript等编写,而目前流行的方法是采用Java或JavaScript。
一、JavaScript简介
JavaScript是个脚本[wiki]编程[/wiki]语言,好处在于它既适用于客户端应用,又可用于服务器端应用开发。例如,在客户端它可用于编写[wiki]Web浏览器[/wiki]程序,而在服务器中,它可用于编写处理Web浏览器提交的[wiki]信息[/wiki],并相应地更新浏览器显示的Web服务器程序。尽管JavaScript能满足一些服务器方编程[wiki]需求[/wiki],但还需要一些服务器方程序来支持更高级的Web应用程序。例如,访问[wiki]数据库[/wiki]或进行特殊处理。为此,Netscape公司专门提供了开发JavaScript服务器程序的集成[wiki]环境[/wiki]Livewire。
二、Livewire简介
Livewire是个WEB应用程序开发环境,在WindowsNT4.0[wiki]系统[/wiki]下安装NetscapeFasttrack就可使用它。Livewire可用来开发浏览器和服务器方的Web应用程序。从而在服务器方可替代原来需要的CGI程序。Livewire和Netscape服务器可以从Netscape的Web站点http://home.Netscape.com下载(30天免费试用)。
三、服务器方JavaScript编程
服务器方JavaScript程序是用Livewire开发的,具体编程步骤如下:
1、用客户机方JavaScript和服务器方JavaScript嵌入HTML中创建源文件。
2、用Livewire编译器将源文件编译成.WEB文件。
服务器方JavaScript为了和客户机方JavaScript区别,提供了4种[wiki]对象[/wiki],request,client,project和server。
下面,我们就可以开发一些程序了,首先,以一个简单的例子向大家介绍开发过程:学生.htm提供学生注册登记表,让学生填写。
Process.htm处理学生在学生.htm注册登记表中输入的数
据,将客户机方与服务器方JavaScript联合起
来显示学生登记表,并提交给display.htm。
display.htm显示学生.htm和process.htm收集的数据,并
存放在client属性中。
record.htm将学生登记表计入文件student.txt中。
程序附后:
学生.htm
以下是引用片段:
%26lt;html%26gt;
%26lt;head%26gt;
%26lt;metahttp-equiv="Content-Type"
c%26gt;
%26lt;metaname="GENERATOR"c%26gt;
%26lt;title%26gt;学生情况登记%26lt;/title%26gt;
%26lt;/head%26gt;
%26lt;palign="center"%26gt;%26lt;fontsize="5"%26gt;Welcometocomputercenter%26lt;/font%26gt;%26lt;/p%26gt;
%26lt;formaction="process.htm"%26gt;
%26lt;/form%26gt;
%26lt;p%26gt;%26lt;fontcolor="#00FF40"size="4"%26gt;请输入学号:%26lt;/font%26gt;%26lt;/p%26gt;
%26lt;formmethod="[wiki]POS[/wiki]T"%26gt;
%26lt;p%26gt;%26lt;input[wiki]type[/wiki]="text"size="13"name="T1"%26gt;%26lt;input
type="submit"value="Continue"%26gt;%26lt;/p%26gt;
%26lt;/form%26gt;
%26lt;/body%26gt;
%26lt;/html%26gt;
Process.htm
以下是引用片段:
%26lt;html%26gt;
%26lt;head%26gt;
%26lt;metahttp-equiv="Content-Type"
c%26gt;
%26lt;title%26gt;%26lt;/title%26gt;
%26lt;/head%26gt;
%26lt;bodybgcolor="#808080"%26gt;
%26lt;SERVER%26gt;
%26lt;p%26gt;client.t1=request.t1
write("%26lt;scriptlanguage="javaScript"%26gt;")
write("%26lt;/SCRIPT%26gt;")
%26lt;/SERVER%26gt;
%26lt;/body%26gt;
%26lt;/html%26gt;
%26lt;/script%26gt;%26lt;/p%26gt;
%26lt;palign="center"%26gt;%26lt;fontcolor="#FFFF00"size="5"%26gt;学生情况登记%26lt;/font%26gt;%26lt;/p%26gt;
%26lt;formaction="display.htm"%26gt;
姓名%26lt;inputtype="text"size="14"name="Name"%26gt;
性别%26lt;inputtype="text"size="7"name="*"%26gt;
出生年月%26lt;inputtype="text"size="30"name="Birth"%26gt;
家庭住址%26lt;inputtype="text"size="11"name="Address"%26gt;
邮政编码%26lt;inputtype="text"size="11"name="Zip"%26gt;
[wiki]电话[/wiki]号码%26lt;inputtype="text"size="11"name="Tel"%26gt;
%26lt;/p%26gt;
%26lt;/form%26gt;
%26lt;/body%26gt;
%26lt;/html%26gt;
display.htm
以下是引用片段:
%26lt;html%26gt;
%26lt;head%26gt;
%26lt;metahttp-equiv="Content-Type"
c%26gt;
%26lt;metaname="GENERATOR"c%26gt;
%26lt;title%26gt;client.%26lt;/title%26gt;
%26lt;/head%26gt;
%26lt;bodybgcolor="#FFFFFF"%26gt;
%26lt;SERVER%26gt;
%26lt;p%26gt;client.Name=request.Name
client.*=request.*
client.Birth=request.Birth
client.Address=request.Address
client.Zip=request.Zip
client.Tel=request.Tel%26lt;/p%26gt;
%26lt;p%26gt;write(client.Name+"
")
write(client.Birth+"
")
write(client.Address+"
")
write(client.Zip+"
")
write(client.Tel+"
")
%26lt;/SERVER%26gt;%26lt;/p%26gt;
%26lt;formaction="finish.htm"%26gt;
%26lt;p%26gt;%26lt;inputtype="submit"value="继续"%26gt;%26lt;/p%26gt;
%26lt;/form%26gt;
%26lt;/body%26gt;
%26lt;/html%26gt;
record.htm
以下是引用片段:
%26lt;html%26gt;
%26lt;head%26gt;
%26lt;metahttp-equiv="Content-Type"
c%26gt;
%26lt;metaname="GENERATOR"c%26gt;
%26lt;title%26gt;f=%26lt;/title%26gt;
%26lt;/head%26gt;
%26lt;bodybgcolor="#FFFFFF"%26gt;
%26lt;SERVER%26gt;
%26lt;p%26gt;f=newfile("student.txt")
f.open("a")
f.writeln(client.Name)
f.writeln(client.*)
f.writeln(client.Birth)
f.writeln(client.Address)
f.writeln(client.Zip)
f.writeln(client.Tel)
f.close()%26lt;/p%26gt;
%26lt;/SERVER%26gt;%26lt;/body%26gt;
%26lt;/html%26gt;