欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

ASP十步进阶

程序员文章站 2022-07-02 14:42:37
利用 microsoft active server pages 创建动态、交互式站点   利用微软的软件产品 active server pages,通过在普通页面中嵌入的asp脚本语言,可以帮...
利用 microsoft active server pages 创建动态、交互式站点

  利用微软的软件产品 active server pages,通过在普通页面中嵌入的asp脚本语言,可以帮助建立动态的交互式站点,这一点早已是大家所熟知的了,就不用多说了.笔者也是初学asp 脚本语言编写,来谈谈自己的学习体会,希望能给后学者一点建议和启示,更期望引起大家的兴趣来交流探讨、共同提高.

一  asp 与 html 相比的优点
  关于这方面的论述已经很多了,这里就不展开讨论了.笔者认为,asp与html相比,其最大的优势在于三个方面:
  1.在创建动态、交互式站点方面,其功能强大、处理方式灵活,具体可参见其它歌颂 asp 功能的文章.
  2.由于asp脚本语言是由服务端来解释和运行,动态生成普通的html页面,然后再传送到客户端供浏览,因而对客户端要求相对较低,并不要求其必须支持特定的某些脚本语言如javascript、jscript、vbscript、perl等等.
  3.由于传送到客户端的只是解释后的html页面,因而有效地保护了页面开发者的知识产权.

二 搭建学习 asp 的应用平台
  关于这方面的文章也不少,如【计算机世界】1998年第38期internet&intranet版的一篇文章《自己搭建asp集成开发环境》就挺不错,目前读者还保留这篇文章,如果你需要就发个mail过来吧.笔者所用的开发平台为 win95 + tcp/ip + pws + asp + frontpage98,其中 frongpage 不是必须的,可以用其它页面开发工具甚至是 notepad 来代替.pws 应该容易获得和安装,在 win95 osr2 及其后的版本中都有;而asp 则需要在 winnt 的 iis 中去找,或在 visual interdev 的安装光盘中去找,实在找不到就到微软的站点上去下载一个吧.

三 建立自己的简单asp页面
  所谓的asp页面就是在普通的html页面文件中插入一些特殊的脚本语言并以扩展名保存后的页面,所以可以很容易地建立一个自己的简单的asp页面,体会一下asp的入门感觉,同时获得点成功的快感以便保持继续学习下去的兴趣.
  首先来学习一下asp脚本语言的简单的语法.最基本的的是,在与html语言混合使用时asp语句是以""<%"为开始,以"%>"为结束的,且必须成对出现.另外,由asp默认的脚本语言是vbscript(设置其它脚本语言稍后再谈),你还应该熟悉vbscript的基本语法.有了这些,建立一个简单的asp页面应该是没有问题了.
  看看下面的一个页面文件( test1.asp ):
<% rem test1.asp %>
<html>
<head>
<title>一个简单的asp页面</title>
</head>
<body>
<p>
<h1>下面应出现4行语句,字体大小从4到7</h1>
<% for i = 4 to 7 %>
<br><font size = <% =i %>>这行语句的字体大小为
<% =i %></font>
<% next %>
</p>
</body>
</html>
  其中,语句 <% =i %> 是将变量 i 的值输出到html文件中.asp用"<%=变量名%>"将指定变量的内容输出到其生成的html页面中.
  由上可见,可以先设置制作一个普通的html页面文件,然后在需要的地方插入asp脚本语言即可.关键是熟练应用asp脚本语句.
  该页面虽然简单,却可以帮助熟悉和理解asp语法.可以用浏览器查看运行效果,再用其查看源代码的功能看一下源代码,可以看对asp页面解释后的html文件.注意必须用http的方式访问asp页面,不能象html页面文件那样双击文件名以文件方式浏览.如在笔者的计算机上的访问方式为 https://wangfajun/aspsamp/test1.asp

四 利用request对象制作简单的交互页面
  asp的内建对象request中包含了访问者的一些申请信息.可以将这些信息作为某些应用(如商业订单信息)并对申请者的申请要求作出反馈.
  在我们的这个例子中,读者会员资格注册申请页面要求申请者填写其姓名全称、身份证号码、email地址.在收到读者申请后通知其注册成功.
  先做一个读者会员资格注册申请页面,可以是html页面或asp页面.这应该不成问题.
<!-- apply.htm -->
<html>
<head>
<title>读者会员资格注册申请</title>
</head>

<body>
<h2>读者会员资格注册申请</h2>

<form method="post" action="result.asp">
<p>
姓名全称: <input name="fullname" size="20" value="姓名全称">
<p>
身份证号码: <input name="universalid" size="15" value="888888888888888">
<p>
电子邮箱: <input name="email" value="mailbox@yourcompany.com">
<p><input type=submit value="提交申请"><input type=reset value="重新填写">
</form>

</body>
</html>

  在申请页面中,所有的申请数据均填写在form元素中,并且在form的action中指定处理申请的页面为result.asp.当收到申请时,对应项目的数据可以由request.form("项目名称")来获得,其中"项目名称"为form元素的名称,如"姓名全称"对应"fullname" ,如"身份证号码"对应"universalid" .现在利用这些信息来制作一个注册成功的通知页面result.asp.
<% rem result.asp %>
<html>
<head>
<title>读者会员资格注册申请成功</title>
</head>

<body>
<p align="center"><h2><font color="green">读者会员资格注册申请成功</font></h2>

<p>亲爱的<%=request.form("fullname")%>读者:<br>
我们已经收到你的申请,并接受你的申请.你已经成为我部正式读者会员.<br>你的读者号为cn<%=request.form("universalid")%>.我们将通过你的电子信箱<%=request.form("email")%><br>来正式通知你.此后我部举行读者沙龙活动的时间和地点也将通过该信箱通知你.

</body>
</html>
  现在用浏览器打开申请页面,填入对应数据后提交申请,查看反馈效果,再用浏览器的查看源代码的功能看一下源代码,可以看对asp页面解释后的html文件.

五 通过内建对象 request 获取用户申请信息
  可以从 asp 的内建对象 request 获取用户通过http传送过来的申请信息,如客户认证、cookies数据、post信息、查询参数、服务器环境信息等,这些可以分别从对象 request 的集合属性clientcertificate、cookies、form、querystring、servervarables 中获取,获取方式为 request.collectionname( itemstring ),其中collectionname为集合属性名称即
clientcertificate、form、querystring、servervarables 中的一个,itemstring 为要获取的项目的名称.如果可以确定没有重复的项目名称,也可直接以request( itemstring )来获取用户信息,而不用指明集合属性名称.例如请求页面中有一个form元素customerid,且没有其它元素名称为customerid,则用request.form( "customerid" ) 与用request.( "customerid" )
具有同样的效果.
  ㈠.用request.form获取表格信息
1.asp页面可从一个html中获取表格信息,只要将该表格的action指定为对应的asp页面即可.该项应用可参见前面的列举的读者会员资格申请的例子.在该例子中,result.asp 从一个html中获取表格信息并提供反馈信息.
2.asp页面可从另一个asp页面生成的html中获取表格信息.具体运作方式基本与从html页面中获取信息相同.
3.asp页面可从自己生成的html中获取表格信息,只不过需要判断该页面是输入页面还是反馈页面.在下面的例子中,login.asp 提供了一个用户登录页面,要求用户输入登录帐号和密码,然后再通过form的action属性将表格发送给自己进行处理.在 login.asp 中,将根据帐号和密码是否全为空来判断是输入页面还是反馈页面,并给予不同的提示,若是输入则提示"用户登录,请输入用户帐号和密码",否则显示用户帐号和密码.
<% rem login.asp %>
<html>
<head>
<title>用户登录</title>
</head>

<body>
<% if isempty( request.form( "customerid" ) ) and isempty( request.form( "password" ) ) then
promptstring = "用户登录,请输入用户帐号和密码"
else
promptstring = "用户"&request.form( "customerid" )&"登录成功,密码为"&request.form( "password" )
end if
%>

<h2><% = promptstring %></h2>

<form method="post" action="login.asp">
<p>
用户帐号: <input name="customerid" value="">