首页 百科知识 Request对象

Request对象

时间:2022-10-15 百科知识 版权反馈
【摘要】:Request对象的常用方法和属性如表6-10所示。图6-21 6-14.asp执行结果2. 使用Request.QueryString 获取URL变量当网页通过超链接或者其他方式从一张网页转到另一张网页的时候,往往需要在转跳的同时把一些数据传递到第二张网页中,可以把这些数据附加在超链接URL的后面,在第二张网页中使用Request.Querystring方法来获取URL后变量的值。

6.3.2 Request对象

Request对象用来读取从客户端浏览器发送到服务器的数据。

例如,服务器经常需要获得客户端输入的信息,如常见的注册、登录、留言等,用户把相应的信息填写在表单中,然后“提交”表单,这时就需要使用Request对象获取表单中的信息。Request对象的常用方法和属性如表6-10所示。


表6-10 Request对象的常用方法

img427

1. 使用Request.Form 获取表单中的数据

Form是Request对象最常用的方法之一,它用来获取客户端在表单中所输入的信息,请看一个简单的获取用户登录时用户名和密码的例子。

------------------------清单6-12 6-12.asp------------------------

<HTML>

<HEAD>

<TITLE> 登录页 </TITLE>

</HEAD>

<BODY>

<FORM METHOD=POST ACTION="6-13.asp">

用户名:<INPUT NAME="userName" TYPE="text" size="10">

密 码:<INPUT NAME="Pass" TYPE="password" size="10">

<INPUT TYPE="submit" value="登录">

</FORM>

</BODY>

</HTML>

-------------------------清单6-13 6-13.asp-----------------------

<HTML>

<HEAD>

<TITLE>获取页</TITLE>

</HEAD>

<BODY>

<%

dim userName,PS

userName=request.form("userName")

PS=request.form("Pass")

Response.write "你输入的用户名是:"&userName

Response.write"<br>你输入的密码是:"&PS

%>

</BODY>

</HTML>

--------------------------------------------------------------------

程序执行结果如图6-19所示。

在这里,6-12.asp用来显示表单,表单标签form的Action属性值为6-13.asp执行结果,表示用户填写登录信息并点击“登录”按钮会转到6-13.asp网页执行;表单的两个文本字段的Name属性项的值为userName和Pass,为方便在6-13.asp中获取它的值而做好准备工作。6-13.asp用来获取用户输入的值并显示出来,用request.form("userName")和request.form("Pass")获取两个文本字段的值,然后输出获得的值,也就是在图6-20中所看到的结果。

img428


图6-19 6-12.asp执行结果

img429


图6-20 6-13.asp执行结果

既可以在Action属性拟定的另一张网页来读取表单中的信息,也可以在表单所在网页中来读取此信息,下面使用一张网页来实现上例中的效果。

--------------------------清单6-14 6-14.asp-------------------------

<HTML>

<HEAD>

<TITLE>用一张网页实现交互</TITLE>

</HEAD>

<BODY>

<FORM METHOD=POST ACTION="">

用户名:<INPUT NAME="userName" TYPE="text" size="10">密码:<INPUT NAME="Pass" TYPE="password" size="10">

<INPUT TYPE="submit" value="登录">

</FORM>

<%

if request.form("userName")<>"" and request.form("Pass")<>"" then

dim userName,PS

userName=request.form("userName")

PS=request.form("Pass")

Response.write "你输入的用户名是:"&userName

Response.write"<br>你输入的密码是:"&PS

end if

%>

</BODY>

</HTML>

--------------------------------------------------------------------

执行结果如图6-21所示。

这个例子中,<% if request.form("userName")<>"" and request.form("Pass")<>"" then %>这个条件语句表示,如果用户在用户名和密码框中都输入了内容,就执行这个条件语句中的内容:获取信息和显示信息。在第一次打开此页面时,用户名和密码框中都没有内容不会执行条件中的内容,只会显示表单的内容。

img430


图6-21 6-14.asp执行结果

2. 使用Request.QueryString 获取URL变量

当网页通过超链接或者其他方式从一张网页转到另一张网页的时候,往往需要在转跳的同时把一些数据传递到第二张网页中,可以把这些数据附加在超链接URL的后面,在第二张网页中使用Request.Querystring方法来获取URL后变量的值。例如,

<a href="7-5.asp?Id=张三&page=2">张三的信息</a>

此超链接中含有两个URL变量,Id 和 page,变量参数之间用&连接。请看如下的例子。

--------------------------清单6-15 6-15.asp ------------------------

<HTML>

<HEAD>

<TITLE>传送URL变量 </TITLE>

</HEAD>

<BODY>

<a href="6-16.asp?Id=李四&page=3">李四的情况(链接)</a>

</BODY>

</HTML>

-------------------------清单6-16 6-16.asp -------------------------

<HTML>

<HEAD>

<TITLE> 获取URL变量 </TITLE>

</HEAD>

<BODY>

<%

Dim id,page

id=request.querystring("id")

page=request.querystring("page")

Response.write "id="&id&"<br>page="&page

%>

</BODY>

</HTML>

--------------------------------------------------------------------

执行结果如图6-22所示。

img431

img432


图6-22 6-15.asp的执行结果

在程序6-15.asp中,直接将“李四”和“3”的信息传送到6-16.asp,但实际应用时,经常使用变量来传送。6-15.asp可以改写成6-15-2.asp:

------------------------清单6-15-2 6-15-2.asp -----------------------

<HTML>

<HEAD>

<TITLE>传送URL变量 </TITLE>

</HEAD>

<BODY>

<%

name="李四"

page=3

%>

<a href="6-16.asp?Id=<%=name%>&page=<%=page%>">李四的情况(链接)</a>

</BODY>

</HTML>

--------------------------------------------------------------------

这与6-15.asp具有相同的作用,其中<%=name%>是<%Response.write name%>的一种简写方法,作用完全相同。

3. 使用Request.ServerVariables 获取环境变量信息

有时需要获取服务器端或客户端的某些特定信息,比如获取客户端的IP地址、客户端浏览器所发出的所有HTTP标题文件等,可以使用Request对象的ServerVariables方法方便地取得这些信息。使用此方法的语法如下:Request.ServerVariables("环境变量名")常用的环境变量名如表6-11所示。


表6-11 常用的环境变量

img433


续表

img434

下面使用Request. ServerVariables方法来获取客户机的IP地址和当前ASP文件的虚拟路径。

-------------------------清单6-17 6-17.asp -------------------------

<HTML>

<HEAD>

<TITLE> 使用ServerVariables方法获取IP地址和虚拟路径</TITLE>

</HEAD>

<BODY>

<%

Dim ip,path

ip=Request.ServerVariables("REMOTE_ADDR")

path=Request.ServerVariables("SCRIPT_NAME")

response.write"您的IP是:"&ip

response.write"<br>当前ASP文件的虚拟路径是:"&path

%>

</BODY>

</HTML>

--------------------------------------------------------------------

执行结果如图6-23所示。

img435


图6-23 6-17.asp调试结果

4. 使用Request.cookies获取得客户端浏览器的信息

当Response对象设置好cookies数据集合里的各项数据项之后,就可以通过Request.cookies对象获得这些数据项的内容。

使用格式如下:

Request.cookies(cookies名称)[(key)|.attribute]

cookies的应用实例如下。

---------------------------清单6-18 6-18.asp------------------------

<%

Response.cookies("user")("name")="李四"

Response.cookies("user")("pwd")="1234"

a= request.cookies("user")("name")

b= request.cookies("user")("pwd")

Response.write a&b

%>

--------------------------------------------------------------------

执行结果如图6-24所示。

img436


图6-24 6-18.asp调试结果

下面举一个cookies的综合实例。

--------------------------清单6-19 6-19.asp------------------------

<html>

<head>

<title>Cookies综合示例</title>

</head>

<body>

<%if Request.cookies("UserName")<>"" then

Response.write"欢迎您:"&request.Cookies("UserName")

else

%>

<table width="98%" height="30" border="0" cellpadding="0"

cellspacing="1" bgcolor="#666666">

<tr bgcolor="#CCCCCC">

<td>

<form name="form1" method="post" action="">

请输入:&nbsp;&nbsp;用户名:

<input name="UserName" type="text" id="UserName" size="12">

电子邮件:

<input name="Email" type="text" id="Email" size="12">

保存时间:

<select name="Save" id="Save">

<option value="1">保存1天</option>

<option value="7">保存1周</option>

<option value="30">保存1月</option>

</select>

<input type="submit" name="Submit" value="确定">

</form>

</td>

</tr>

</table>

<%

if request.Form("UserName")<>"" and request.Form("Email")<>"" then

Response.cookies("UserName")=Request.Form("UserName")

Response.cookies("Email")=Request.Form("Email")

Response.cookies("UserName").Expires=date()+Cint(request.

form("Save"))

'设置有效期

Response.cookies("Email").Expires=date()+Cint(request.

form("Save"))

Response.redirect("6-19.asp")'相当于刷新本页

Response.end

end if

end if

%>

</body>

</html>

--------------------------------------------------------------------

执行结果如图6-25所示。

img437


图6-25 6-19.asp的调试结果

本例综合应用了Response对象、Request对象的方法,以及HTML表单form。表单form提供用户输入信息的界面,request.form方法用于获取浏览器里的表单信息,Response.cookies用于将信息写入客户端cookies,request.cookies获取客户端已存的cookies信息,response.write则用于在客户端浏览器里显示信息。

注意:本例中有2段asp代码,第一段<% %>里有一个if语句;第二段<% %>开头部分也有一个if语句,后面有2个end if,这2个end if分别与前面2个if匹配(尽管有一个if不在第二段asp代码里,而是在第一段asp代码里)。这就是说,虽然这2段asp代码在形式上被一些HTML代码隔离了,但作为asp程序,这2段代码在逻辑上并没有被隔开,而是“前后相邻”的。在以后编辑asp文件时,会经常这样使用,值得大家注意。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈