我们在 教程二中讲述了Response对象,此对象的作用是把服务器的信息传送到客户机的浏览器上,而这次我们要讲的对象Request的作用恰好与Response的相反,它是在服务器中得到从客户机的浏览器所提交或上传的信息,此过程与Response相反。好,我们还是通过举例来了解Request对象的使用吧。
在下边的例子中,我们需要制作一个HTML文档Eng.htm和一个asp文档Chinese.asp,HTML文档中列出几行英文,当用户点击某一行英文后,HTML文档将向服务器索取Chinese.asp,Chinese.asp将运行服务器端脚本,并将此行英文的中文意思返回给客户机的浏览器。
例4 一个简单的"英译中"程序:Eng.htm和Chinese.asp
Eng.htm:
<html>
<head>
<title>ASP示例4—Eng.htm</title>
</head>
<body bgcolor="#FFFFFF">
<p><a href="Chinese.asp?answer=1">My name is am Jack.</a></p>
<p><a href="Chinese.asp?answer=2">I'm from America.</a></p>
<p><a href="Chinese.asp?answer=3">I love Chine.</a></p>
</body>
</html>
|
Chinese.asp:
<html>
<head>
<title>ASP示例4—Chinese.asp</title>
</head>
<body bgcolor="#FFFFFF">
<p>此句的中文是:</p>
<p><font color="blue">
<%
if Request("answer")=1 then
Response.Write "我的名字是杰克。"
end if
if Request("answer")=2 then
Response.Write "我来自美国。"
end if
if Request("answer")=3 then
Response.Write "我爱中国。"
end if
%>
</font></p>
</body>
</html>
|
可以注意到,Eng.htm中的语句
<a href="Chinese.asp?answer=1">My name is am Jack.</a>
|
它是一个链接,但不是链上一个html文档,而是一个asp文档,在文件名后边紧跟着一个"?"这表示其后是上传的的参数,此例中只有一个上传参数answer,它的参数值等于1,如果有两个参数,则参数之间用"&"符号连结,例如:"Chinese.asp?answer=1&name=Jack"。点击链接以后,剩下的工作就由服务器来做了,服务器运行Chinese.asp,在Chinese.asp中通过if语句判断上传的参数answer的值,再根据只来输出翻译过来的中文意思,而获得上传的参数值正是Request对象的工作,Request("answer")将获得参数answer的值。接着,服务器再用Response对象的"Write函数"将中文意思传送给客户机的浏览器。
下边我们再看一例,此例也用了一个html文档Ques.htm和一个asp文档Answer.asp,用户在html文档的两个文本框中各输入一个整数,然后按"提交"按钮,服务器将计算两个整数相加的结果,然后返回给客户机的浏览器。此例与上例有所不同,读者可以细心体会。
例5 计算两个整数相加的和
Ques.htm:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>ASP示例5—Ques.htm</title>
<meta name="GENERATOR" content="Microsoft FrontPage 3.0">
</head>
<body bgcolor="#FFFFFF">
<form method="POST" action="Answer.asp">
<p>请输入相加的两个整数,然后按“提交”:</p>
<p><input type="text" name="num1" size="5">+<input type="text" name="num2" size="5"></p>
<p><input type="submit" value="提 交" name="B1"></p>
</form>
</body>
</html>
|
Answer.asp:
<html>
<head>
<title>ASP示例5—Answer.asp</title>
</head>
<body bgcolor="#FFFFFF">
<%
DIM n1,n2,sum
n1=Request("num1")
n1=CInt(n1)
n2=Request("num2")
n2=CInt(n2)
sum=CInt(n1+n2)
%>
<p><%=n1%>+<%=n2%>=<%=sum%></p>
</body>
</html>
|
此例中的Request对象索取的是文本框对象num1和num2("num1"和"num2"是文本框对象的名字,Request可以直接索取其值,而不需要在Answer.asp后面紧跟"?",并附带参数名和参数值)。此外,还用了一个函数CInt(),因为我们要把两个数相加,但是Ques.htm上传的是文本,而不是整数,所以我们要事先把这些值用函数CInt()转换成整数型的,然后再相加。
也许您已经注意到语句
"<form method="POST" action="Answer.asp">"
|
action(动作)参数是指明执行表单的程序为Answer.asp,而methor(方法)参数则指明表单将信息传送给服务器的方式,主要有POST和GET两种方式,通常我们使用POST方法,因为POST传送的信息量要比GET的多,而且功能要比GET强大。
到了这里,您对Request对象也应该有所掌握了。
(责任编辑:战莹)
|