ASP

34
ASP 第 4 第 Request 第 Response 第第

description

ASP. 第 4 章 Request 和 Response 对象. ASP 内部对象. 什么叫对象? 对象的属性、方法和事件 内部对象 Request( 意 索取、请求 ) 对象:从客户端获取数据 Response ( 意 回答 ) 对象:向客户端输出数据 Session 对象:记载单个用户的信息 Application 对象:记载同一个应用程序中的所有用户之间的共享信息 Server 对象:提供服务器端的应用. Request 对象. - PowerPoint PPT Presentation

Transcript of ASP

Page 1: ASP

ASP

第 4 章 Request 和 Response 对象

Page 2: ASP

ASP 内部对象• 什么叫对象?• 对象的属性、方法和事件 • 内部对象 Request( 意索取、请求 ) 对象:从客户端获取数据 Response ( 意回答 ) 对象:向客户端输出数据 Session 对象:记载单个用户的信息 Application 对象:记载同一个应用程序中的所有

用户之间的共享信息 Server 对象:提供服务器端的应用

Page 3: ASP

Request 对象• Request 对象用来获取客户端信息,依靠 5 种获

取方法(数据集合): QueryString 、 Form 、 Cookies 、 ServerVariables 、 ClientCertificate 。

• 语法: Request[. 数据集合 ]( 参数 )

例如: <%

s1=Request.Form("t1") ' 获取表单元素 t1 的值 %>

Page 4: ASP

使用 Form 数据集合获取表单信息

• 在 ASP 中,获取 FORM 表单中的信息就是用 Form 获取方法来实现的。

• 语法: Request.Form (参数)

Page 5: ASP

使用 QueryString 获取字符串信息

• 利用 QueryString 获取方法取到标识在 URL 后面的变量及其值;

<a href=”1.asp?name= 白芸 &age=22”>

• 语法: Request.Querystring(“ 参数” )

Page 6: ASP

使用 ServerVariables 获取环境变量

• 利用该方法可以获取服务端或客户端的一些信息,如来访者的 IP 地址。

• 语法如下 Request.ServerVariables(variablename)

其中 variablename 表示环境变量名称字符串,常用的环境变量 有:

REMOTE_ADDR 客户端 IP 地址

Page 7: ASP

使用 ClientCertificate 获取身份验证

• 如果客户端浏览器支持 SSL (安全套接层)协议,并且服务器端要求进行身份验证,则利用 ClientCertificate 数据集合就可以获取客户端浏览器的身份验证信息。

• 语法如下:Request.ClientCertificate(keyword)

例如: Request.ClientCertificate("Subject")可返回验证主题信息。

Page 8: ASP

TotalBytes 属性• 该属性用来获取客户端发出的请求数据的

字节大小• 语法如下: Request.TotalBytes

• 例如:< % intCount=Request.TotalBytes

' 返回客户端请求数据的字节大小% >

Page 9: ASP

BinaryRead 方法• 用以二进制方式获取客户端用 POST 方法提交的数据。• 语法为: Request.BinaryRead(count)其中 count 表示准备读取数据的字节大小,取值可以是 0 至

Request.TotalBytes 的整数。• 例将以二进制方式获取提交的全部数据:<%Dim intCount,varDataintCount=Request.TotalBytes ' 返回提交数据的字节大小varData=Request.BinaryRead(intCount) ' 读取指定大小

的二进制数据%>

Page 10: ASP

<html><head></head>

<body>

<form method="POST" action=“1.asp">

用户名: <input type="text" name="username" size="20"></p>

<p> 密码: <input type="text" name="password" size="20"></p>

<p><input type="submit" value=" 提交 " name="B1"></p>

</form>

</body>

</html>

Page 11: ASP

1.asp 代码如下:<%dim username,password ' 采用 Form 方法获取信息username=Request. Form ("username")password=Request. Form ("password")if username="admin" thenif password="admin888" thenResponse.redirect"admin.asp"ElseResponse.Write " 输入错误 !"End ifEnd if%>

Page 12: ASP

<form method="post" action="">标题 :<input name="t1" type="text">内容 :<textarea name="t2"></textarea><input type="submit" value=" 提交 "></form>

<%dim t1,t2,t3 t1=trim(Request.Form("t1")) t2=Request.Form("t2") t3=Request.servervariables("REMOTE_ADDR")conn.Execute "insert into zb(t1,t2,t3,t4) values ('"& t1 &"','" & t2 & "','" & t3 & "','" & now() & "')" conn.close response.redirect "http://www.jxcia.com" %>

Page 13: ASP

<html><head></head><body>

<p> 您最喜欢的是什么职业: <br>

<a href=“1.asp?fav= 教师 "> 教师 </a><p>

<a href=“1.asp?fav= 工程师 "> 工程师 </a><p>

<a href=“1.asp?fav= 推销员 "> 推销员 </a>

</body>

</html>

Page 14: ASP

<html><head></head><body><%fav=Request.QueryString("fav")%>您最喜欢的职业是: <%=fav%></body></html>

Page 15: ASP

<html><head><title> QueryString 获取方法范例 </title></head><body>

<%

fav=Request.QueryString("fav")

if fav=" 教师 " then

Application("fav1")=Application("fav1")+1

end if

if fav=" 工程师 " then

application("fav2")=application("fav2")+1

end if

if fav=" 推销员 " then

application("fav3")=application("fav3")+1

end if

%>

你最喜欢的职业是: <%=fav%><br>大家最喜欢的职业票数累计结果如下 :<br>教师 :<%=application("fav1")%> 票 <br>工程师 :<%=application("fav2")%> 票 <br>推销员 :<%=application("fav3")%> 票 <br></body></html>

Page 16: ASP

在 newadminlist.asp 中<a href="delete.asp?id=<%=rs("id")%>"> 删除 </a>在 delete.asp 中<% id=request.querystring("id") sql="delete from zb where id =" & id conn.Execute(sql)conn.close Response.Redirect "newadminlist.asp" %>

点击链接将要删除的记录的 ID 号传递给 delete.asp在 delete.asp 中通过 id=request.QueryString("id") 以获得所传递过来的 ID ,并以此为条件查询数据库,把此条记录给删除再例如 <a href="body.asp?id=<%=rs("ID")%>"><%=RS("title")%></a> ,点击链接,将 ID 号传递给 body.asp

Page 17: ASP

<html><head><title> ServerVariables 获取方法范例 </title></head><body><p> 发送请求的端口号是:<b><% =Request.servervariables("SERVER_PORT") %></b><br><p> 发送请求的远程主机的 IP 地址是:<b><% =Request.servervariables("REMOTE_ADDR") %></b><br></body></html>

Page 18: ASP

上节课内容相关思考题• 利用 SQL 语句向数据库添加记录insert into 客户反馈 ( 商品 , 评价 , 客户 IP,

反馈时间 ) values (‘“& &"','" & & "','" & & "','" & & "')

Page 19: ASP

• 当几个栏目共用一个列表页,如何向列表页传递栏目类别?

Page 20: ASP

Response 对象• Response 对象用来向客户端输出信息 。

Page 21: ASP

Response 对象的数据集合• Cookies 负责设置客户端浏览器的 Cookie 值 。• Cookie 俗称甜饼,可以在客户端长期保存信息。它是服

务器端发送到客户端的一些文本文件,保存在客户的硬盘上 Cookies 文件夹。

• 每个网站都可以有自己的 Cookie ,但是每个网站只能读取自己的 Cookie 。

• Cookie 有两种形式:会话 Cookie 和永久 Cookie 。前者是临时性的,只在浏览器打开时存在;后者则永久地存在于用户的硬盘上并在有效日期之前一直可用。

• 当用户访问某个网站,其访问信息(例如访问次数和用户名)可利用 Response 对象的 Cookies 数据集合设置 Cookie 的值并输出保存到客户端浏览器相应文件夹 Cookies中对应的文本文件中,利用 Request 对象的 Cookies 数据集合来获取 Cookie 的值。

Page 22: ASP

显示用户第几次光临本站

Page 23: ASP

常用的属性• 属性用于控制信息的输出方式• Buffer :设置为缓冲信息。• Expires :页面在缓存中保存的时间。分钟。Response. Expires =10

• ContentType : 例如 Response.ContentType=“image/jpg”

默认为 Response.ContentType=“text/html”

Page 24: ASP

Buffer 属性• 设置是否为缓冲信息。缓冲区是服务器内存的一部分区域,

用于暂时存放数据。• 布尔值 False / True ,规定是否缓冲页面输出。• False 指示不缓存。服务器会一边处理每条 ASP 语句,

一边发送输出每条语句的处理结果。• True 指示缓冲。服务器不会直接将每条 ASP 语句的处理

结果发送输出,而是暂时存放在缓冲区,直到页面上的所有语句被处理,再将存放在缓冲区的处理结果整体输出到客户端。

• IIS 4.0 默认为 False ,而 IIS 5.0 及更高的版本默认为 true 。

• 此属性应用意义不大。

Page 25: ASP

• <%response.buffer= False %> <html><head><title>Buffer 值范例 </title></head><boyd><%response.write(“ 欢迎您” )response.write(“ 访问” )response.write(“盛达网站” )%></body></html>运行结果在浏览器上依次显示:“欢迎您”、“访问”、“盛达网站”。所传信息不放入缓冲区而直接被服务器传送到浏览器。命令执行后,从上到下逐条顺序显示服务器端利用 response 对象传回的字符串。

• <%response.buffer=true%><html><head><title> Buffer 值范例 </title></head><body><%response.write(“ 欢迎您” )response.write(“ 访问” )response.write(“盛达网站” )%></body></html>运行结果在浏览器上一次性显示:“欢迎您访问盛达网站”。

• 但是由于现在计算机处理速度快,网速快,所以这种时间上的差异基本感觉不出来。

Page 26: ASP

Response 对象常用的方法• 方法用于表示如何向页面输出信息• Write :直接送出信息给客户端。• Redirect :引导客户端至另一个 URL位置。• End :结束程序运行。• Flush :立刻输出缓冲区中的页面内容 。• BinaryWrite :用于输出二进制数据等。

Page 27: ASP

Write 方法• 向客户端输出信息• 语法: Response.Write 变量数据或字符串• 如: Response.Write “ 您来访的日期是” & Dat

e() • 如 <%

response.write" 您是第 1次访问本站点。 " &"<br>"response.write" 欢迎您常来 ~" %>

• 简略语法: <%= 变量数据或字符串 %>

Page 28: ASP

<%sql="select top 9 * from zbxxx where t='announce' order by id desc"

set rs=db.execute(sql)

do while not rs.eof%>

<tr><td height="22" bgcolor="#F9F9F9">&nbsp;<span class="STYLE9">●</span></span><a title=" 标题: <%=rs("title")%>

发布时间: <%=rs("submit_date")%> 浏览人次: <%=rs("hits")%>人次 " href="jxcianew_ann/new_annbody.asp?id=<%=rs("ID")%>" target="_blank">&nbsp;<%=left(RS("title"),12)%></a> </td></tr>

<%rs.movenext

loop

%>

Page 29: ASP

Redirect 方法• 类似超链接• 自动引导,重定向• 例<% ti=Left(Request.servervariables("REMOTE_ADDR"),2)if ti="10" thenresponse.redirect "http://10.10.3.3/tyx/" else response.redirect "http://59.52.200.141/tyx/"end if%>

Page 30: ASP

• <form method="post" action="">标题 :<input name="t1" type="text">内容 :<textarea name="t2"></textarea><input type="submit" value=" 提交 "></form>

• <%dim t1,t2,t3 t1=trim(Request.Form("t1")) t2=Request.Form("t2") t3=Request.servervariables("REMOTE_ADDR")conn.Execute "insert into zb(t1,t2,t3,t4) values ('"& t1 &"','" & t2 & "','" & t3 & "','" & now() & "')" conn.close response.redirect "http://www.jxcia.com" %>

Page 31: ASP

End 方法• 结束程序运行。

Page 32: ASP

BinaryWrite 方法• 该方法用于在不进行任何字符转换的情况

下以二进制方式输出信息 。• 其语法为: Response.BinaryWrite 二进制

数据变量• 该方法还可以和 TotalBytes 属性、 Binary

Read 方法联合起来使用,以二进制方式获取客户端提交的表单信息并以二进制方式输出到页面上。

• 例如上传图片到数据库,输出图片到页面。

Page 33: ASP

关于 HTTP 响应信息的复杂操作• CacheControl 属性:客户端浏览器可以缓存页面

内容,如用户再次访问该页面,如果内容没变,直接调用客户端浏览器中的缓存页面 ( 加快浏览速度并可减轻服务器访问负载 ) ,如果页面内容题更新了,则从服务器调新页面。

• 用于设置是否允许缓存, Public 表示允许, Private 表示不允许。

例如:Response. CacheControl=“Public”Response. Expires =10

Page 34: ASP

Content-Type 和 Charset 属性• 设置内容类型和字符集• 利用 Content-Type 和 Charset 属性可以设

置输出页面的内容类型和字符集 • Response. Content-Type=“text/html”

Response. Charset =“gb2312”

• 等同于 <meta http-equiv="Content-Type" content="text/html; charset=gb2312">