【例9-1】写一个ASP开发环境的测试程序,以证明ASP的服务器工作正常。
程序名称是Test.asp,代码如下:
<html>
<head>
<title>ASP Test</title>
</head>
<body>
<Input type="SUBMIT" name="Btn1" value="Test ASP">
<script Language="VBScript">
<!--
Sub Btn1_onClick()
Dim Message
Message="ASP Test Success!"
Msgbox Message,0,"Test ASP"
End Sub
-->
</script>
</body>
</html>
【例9-2】表单实例。
页面post.htm用来显示HTML表单,以接收用户输入的数据。
代码如下:
<html>
<body>
<form method="post" action="post.asp">
姓名:<input type="text" name="yourname"><br>
性别:<select name="gender">
<option>男</option>
<option>女</option>
</select> <br>
留言:<br>
<textarea name="message"></textarea>
<br>
爱好(按住Ctrl 键可多选):<br>
<select name="hobby" multiple size=4>
<option>电脑</option>
<option>购物</option>
<option>电影</option>
<option>读书</option>
</select><br>
<input type="submit" name="Submit" value="提交">
<input type="reset" name="Submit2" value="Reset">
</form>
</body>
</html>
5.Request对象的综合应用——留言板本范例采用表单的形式收集客户留言信息,并通过POST方式,将其传送到Web服务器管理员的邮箱中,其基本流程如下:
(1)客户在线填写留言板。
(2)通过ASP程序将留言信息发送到网站管理员的邮箱中。
(3)网站管理员可以以电子邮件的形式回复客户信息。
根据以上功能要求,程序模块设计如下:
(1)留言板模块。
(2)留言板信息转成Email模块。
(3)处理留言板信息反馈模块。
以下是具体程序设计:
(1)留言板程序设计。
留言板程序(程序名:Customers.asp)代码如下:
<Html>
<Head>
<Title>留言板范例</Title>
</Head>
<Body>
<P>欢迎将您的留言留给我们,您的意见和建议都将是我们的宝贵财富。谢谢您!
</P>
<Form Method="POST" Action="MsgNote.asp">
<P>
<Input Type="radio" Value="0" checked Name="Kind">一般留言
<Input Type="radio" Name="Kind" Value="1">给网站管理者<Br>
姓 名:<Input Type="text" Name="Name" Size="14">
性别:<Input Type="radio" Name="Sex" Value="0" checked>男
<Input Type="radio" Name="Sex" Value="1">女<Br>
Email,<Input Type="text" Name="email" Size="29"><Br>
主 题:<Input Type="text" Name=" Subject" Size="33"><Br>
留 言:<Textarea Rows="5" Name="Body" Cols="36"></Textarea>
</P>
<P>
<Input Type="submit" Value="送出" Name="send">
<Input Type="reset" Value="清除" Name="Clear">
</P>
</Form>
</Body>
</Html>
(2)将留言板信息转成电子邮件。
当客户填完留言板后,单击【送出】按钮,留言板信息就会传到Web服务器上,此时ASP程序将接收(通过Request对象)这些信息。
其程序代码如下:
<%
Set CDOMail=Server.CreateObject("CDONTS.NewMail")
CDOMail.From=Request("From")
CDOMail.To=Request ("To")
CDOMail.Subject=Request("Subject")
CDOMail.Body=Request("Body")
CDOMail.Send
Set CDOMail=Nothing
%>
(3)留言后的显示信息。
当客户发出信息后,通常需要回复客户一个提示信息,告之接收留言后的一些确认信息,以响应客户的参与。客户端的信息可以通过Request对象从系统变量获得。
(4)完整的留言板程序代码。
<%
Dim sKind,sName,sSex,sFrom,STo,sSubject,sBody
Dim CDOMail,Title,Message
NL=CHR(13)+CHR(10)'换行字符
sFrom=Request("From")
sName=Request("Name")
sTo="wangfm@qvtc.cc"
sSubject="[留言板]"+Request("Subject")
sBody=Request("Body")
sSex=Request("Sex")
If sSex="0" Then
Title="小姐"
Else
Title="先生"
End If
Message="姓名"+sName+Title+NL
Message=Message+"时间:"& Now & NL
Message=Message+"-----------------"+NL
Message=Message+sBody+NL
Message=Message+"-----------------"+NL
Message=Message+"IP地址:"+Request("REMOTE_ADDR")+NL
Message=Message+"相关信息:"+Request("HTTP.USER_AGENT")
Set CDOMail=Server,CreateObject("CDONTS,NewMail")
CDOMail.From=sFrom
CDOMail.To=sTo
CDOMail.Subject=sSubject
CDOMail.Body=Message
CDOMail.Send
Set CDOMail=Nothing
%>
<Html>
<Head><Title>留言板</Title></Head>
<Body>
<Br>
<BlockQuote>
<P>欢迎留言,我们收到信息后会尽快与您联系。谢谢!</P>
发件人,<%=sName%><%=Title%><%=sFrom%><Br>
收件人,<%=sTo%><Br>
时间,<%=Now%><Br>
=====================================
<Pre><%=Request( "REMOTE_ADDR" ) % ></Pre>
=====================================
<Br>
IP地址:<%=Request("REMOTE_ADDR")%><Br>
相关信息:<%=Request("HTTP_USER_AGENT")%>
</BlockQuote>
</Body>
</Html>
4.Application对象的综合应用——一个简单的聊天室网上聊天室是一个比较复杂的系统。由于要在多个用户之间显示聊天内容,因此可以用Application对象传递用户的信息。这里介绍一个简单的聊天室示例,代码如下:
<%@ Language=VBScript %>
<html>
<head>
<meta name="GENERATOR" content="Microsoft Visual Studio 6.0">
</head>
<body bgcolor=#COD9D9>
<%
Response.Buffer=true
On error resume next
If Request.ServerVariables("Request_Method")="GET" then
%>
<form method="POST" action="chat1.asp"><P>
<h3>请输入你的昵称</H3>
<input type="TEXT" name="nick" value="">
<p>
<input type="SUBMIT" name="B1" value="进入">
<p>
<input type="HIDDEN" name="log" value="1">
</form>
<%
Response.End
Else
Response.Clear
Response.Write("<body bgcolor=#COD9D9>")
Dim talk
If Request.Form("nick")<>"" then
Session("nick")=Request.Form("nick")
End If
%>
<form method="POST" action="chat1.asp">
<p>
<h3><%=Session("nick")%> 消息:</h3>
<input type="TEXT" name="talk" size="50">
<p>
<input type="SUBMIT" value="提交" name="B1">
<input type="RESET" value="取消" name="B2">
</form>
<a href="chat1.asp"> 返回 </a>
<p>
<%
If Request.Form("log")<>1 then
If TRIM(Request.Form("talk"))="" Then
talk=Session("nick")&"沉默是金。"
Else
talk=Trim(Request.Form("talk"))
End If
Application.Lock
Application("show")="<table border='0' cellpadding='0' cellspacing='0' width='85%'><tr><td width='100%' bgcolor='#C0C0C0'></td></tr><tr><td width='100%'><font color='#0000FF'> 来自 "&Request.ServerVariables("remote_addr")&"的"&Session("nick")&time&" 说:</font> "&talk&"</td></tr><tr><td width='100%' bgcolor='#C0C0C0'></td></tr></table><br>"&Application("show")
Application.Unlock
Response.Write Application("show")
End If
End If
%>
</body>
</html>
【例9-3】计数器组件的用法。
<%
Set Counters=Server.CreateObject("MSWC.Counters")
Counters.Set "testA",10 '设置记数初始值
Counters.Set "testB",20
Counters.Set "testC",30
%>
共有<%=Counters.Get("testA") %>次访问testA.com网站<Br>
共有<%=Counters.Get("testB")%>次访问 testB.com网站<Br>
共有<%=Counters.Get("testC")%>次访问testC.com网站<Br>
在本例中刷新页面,计数器是不会增加的。下例使用Increment方法实现计数递增。
【例9-4】使用Increment方法,实现计数递增的用法。
<%
Set Counters=Server.CreateObject("MSWC.Counters")
%>
共有<%=Counters.Increment("huatengedu")%>次访问huatengedu.com.cn网站<Br>
共有<%=Counters.Increment("huazheng")%>次访问huazheng.com.cn网站<Br>
【例9-5】这个例子利用计数器组件实现简单的投票计数功能。
<%
Set Counters=Server.CreateObject("MSWC.Counters")
Vote=Request.QueryString("Site")
Counters.Increment("Vote")
%>
为你喜欢的网站投票:
<Form Name="Voting for Sites" Method="GET" Action="vote.asp">
<Input Type="Radio" Name="Site" Value="huatengedu">huatengedu.com.cn
<Input Type="Radio "Name="Site" Value="huazheng">huazheng.com.cn
<Input Type="Radio "Name="Site" Value="feiteng">feiteng.com.cn
<Br><Input type="Submit" Value="投票">
</Form>
当前投票结果:<Br>
testA:<%=Counters.Get("huatengedu")%><Br>
testB:<%=Counters.Get("huazheng")%><Br>
testC:<%=Counters.Get("feiteng")%><Br>
9.5程序运行示例这里编写一个简单的ASP程序,并介绍它的运行过程,得出运行结果。
第一步:编写一个体现一页中可以使用不同脚本语言的ASP程序。编写ASP文件可以使用任何的文本编辑器,如记事本,也可以使用Microsoft Visual InterDev、Microsoft FrontPage或Dreamweaver等。
打开【记事本】文本编辑器,输入以下代码:
<html>
<head>
<title>hello</title>
</head>
<body>
<script language="JavaScript" rumat="Server">
Function write_hello()
{
Response.Write("你好,欢迎使用ASP!^!^")
}
</script>
<%
For I=3 to 5
write_hello()
Next
%>
</body>
</html>
执行【文件】|【保存】命令,弹出【另存为】对话框,如图99所示。指定保存位置后,在【保存类型】下拉列表中选择【所有文件】选项,在【文件名】下拉列表中输入“test.asp”,然后单击【保存】按钮。
第二步:新建虚拟目录。首先在D盘根目录下建立一个用于存放ASP文件的文件夹myasp,把第一步中所编辑的test.asp拷贝到该文件夹中。打开【控制面板】|【管理工具】|【Internet服务管理器】→右击【默认Web站点】|【新建】|【虚拟目录】,把myasp文件夹设置成IIS服务器中的虚拟目录myasp。
第三步:调试运行test.asp。打开IE浏览器,在地址栏中输入http://localhost/myasp/test.asp(也可输入http://127.0.0.1/maysp/test.asp),即可看到test.asp的运行结果,如图9-10所示。