资源描述
一、授课题目
Request对象和Response对象
二、教学时间安排
上课2学时,上机2学时
三、教学目的、要求
1.熟知Request对象的属性和方法集合(Form、QueryString、Cookies、ServerVariables);能够熟练使用Request对象实现对数据的获取;
2.熟知Response对象的有关属性和方法及Cookies集,熟练掌握其功能和用法。
四、教学重点和难点
1.利用Request对象获得表单所提交的数据、Cookie的值以及服务器环境变量的值;
2.利用Response对象的属性、方法、和Cookies集合来控制和管理由服务器发送到浏览器的数据;
五、教学方法及手段
1. 多媒体授课。实例演示介绍Request对象和Response对象。
2. 上机实训。通过用户登陆页面表单数据获取和显示来熟悉Request对象和Response对象。
六、教学过程设计
1.导入新课:
在上次课程中,我们已经运用JavaScript和正则表达式实现了对表单数据的校验,保证了数据的合法性,接下来需要在服务器端得到用户表单填写的内容,进行判断。这时就可用到ASP中的内置对象了。
2. 内置对象概念
对象实际上就是一个复杂变量。ASP提供了可在脚本中使用的内置对象、这些对象可以直接使用,不需要用户创建对象的实例。使用这些对象可以方便浏览器和服务器之间信息交流,从而使开发者摆脱了很多烦琐的工作。
在ASP中共有6个内置对象,通过这些对象,可以很容易地收集浏览器发送和请求的信息,以及与服务器和用户相关的信息。
内置对象
说 明
Request对象
负责从用户端接收信息
Response对象
负责传送信息给用户
Session对象
负责存储个别用户的信息,以便重复使用
Application
负责存储数据以供多个用户使用
Server对象
负责控制ASP的运行环境
Object Context对象
供ASP程序直接配合Microsoft Transaction Server(MTS)进行分散式的事务处理
3. Request对象
Request对象将客户端数据保存到内置的几个集合中,通过访问这些集合,便可获得表单所提交的数据、 cookie的值以及服务器环境的值。
Request对象的集合:request.集合名(“成员名”)
集合名称
功能与用途
Form
获得用POST方法所提交的表单数据
Querystring
获得用GET方法提交的表单数据
Cookies
获得cookie的值
Servervariables
获得HTTP头文件的相关信息和Web服务器的几个环境变量的值
(1)Form集合:
Request. form(element)[(index)|.count]
n Element :指定要查询的表单元素的名称;
n index :指定某元素多个值中的一个;
n Count :某元素值的个数
举例:若我们前面做的用户登陆页面的表单提交方式为POST,则用FORM集合获取。
名称为:userpass
名称为:username
check.asp
登陆用户名为:<%=request.form("username")%><br>
输入的密码为:<%=request.form("userpass")%><br>
(2)querystring集合:用法与Form集合相同
Request.QueryString(variable)[(index)|.Count]
举例:若用户登陆页面的表单提交方式为GET,则用QueryString集合获取。获取方式相同。
(3)获取复选框的值
<%
num=request.form(“界面对象名”).count
for n=1 to num
answer=answer&request.form(“界面对象名”)(n)
next
%>
(4) cookies集合
Cookie 其实是一个标签,当你访问一个需要唯一标识你的站址的 WEB 站点时,它会在你的硬盘上留下一个标记,下一次你访问同一个站点时,站点的页面会查找这个标记。
retvalue=request.cookies(“cookiename”)
(5)severvariables集合
用于检索服务器环境变量的值,以及客户端的一些信息。如客户访问论坛时会显示您的IP地址,你的IE版本。访问某些网站时会提示您必须要内网才可以访问等等。这些网站服务器都用severvariables读取了访问者的相关信息。
retvalue=request.servervariables(“环境变量名”)
举例
<td><%pagename=server.MapPath(request.ServerVariables("script_name"))
response.Write(pagename)%></td>
<td><%servername=request.ServerVariables("server_name")
response.Write(servername)%></td>
<td><%serverport=request.ServerVariables("server_port")
response.Write(serverport)%></td>
<td> <%serverip=request.ServerVariables("local_addr")
response.Write (serverip)%></td>
(6)Request对象的一个特殊用法
为了简便,Request对象还提供一个特殊用法:直接写Request,后面不加任何集合。这样服务器会自动按一定的顺序把所有的集合都试一次,直到找到合适的集合来进行具体的操作。
举例:不管用户登陆页面用何种方式提交,我们都可以写:
check.asp
登陆用户名为:<%=request ("username")%><br>
输入的密码为:<%=request("userpass")%><br>
4. Response对象
用于控制和管理由服务器发送到浏览器的数据(HTML普通文本、控制信息、Cookies),其功能主要通过该对象的属性、方法和Cookies集合来实现的。
(1) write方法
将数据(字符串、HTML、JavaScript)等写入HTTP响应流中。
举例
Response.Write “asp程序设计”
Response.Write “<font color=red> asp程序设计</font>”
Response.Write "<script language=javascript>alert('密码错误');location.href='login.asp'</script>"
(2) Buffer属性
指定ASP页面创建的输出是否保存在IIS的缓冲区中,其取值为True或False。
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%response.Buffer=false%>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>
<body>
<%for i=1 to 10
for j= 1 to 500000 '用于延迟
next
response.Write(i&",")
next
%>
</body>
(3)contenttype属性
指定服务器响应的HTTP内容类型
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%type0=response.contenttype%>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>
<body>
<%response.Write type0%>
</body>
(4)charset属性
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%response.charset="big5"
response.charset="gb2312"
%>
<head>
<meta http-equiv="Content-Type" content="text/html; />
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><meta http-equiv="Content-Type" content="text/html; " /></head>
<body>
计算机与信息工程学院
</body>
</html>
(5)expires属性
用户设置网页过期的时间,以分钟为单位
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%response.expires=4%>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>
<body>
现在时间为:<%response.Write time%>
</body>
</html>
(6) status属性
<body>
<%response.status="500 not found"%>
</body>
(7) binarywrite方法:
以二进制的方式输入
(8) redirct方法:
转到其它页面,必须放在其它HTML标记和任何内容之前;
<% if passflag=0 then response.Redirect "response_buffer.asp"%>
(9) cookies集合:给客户端作一个标记;
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%
if request.Cookies("uservisit")("num")="" then
response.Cookies("uservisit")("num")=1
else
response.cookies("uservisit")("num")=request.Cookies("uservisit")("num")+1
end if
response.Cookies("uservisit")("lastvisit")=now
response.Cookies("uservisit").expires=dateadd("ww",1,Date)
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>
<body>
<table width="400" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><%response.Write "访问次数为:"&request.cookies("uservisit")("num")&"<br>"
%></td>
<td><%response.write "最近访问时间" & request.Cookies("uservisit")("lastvisit")%></td>
</tr>
</table>
</body>
</html>
七、思考题及作业
1.在网络课程平台 “上机指导”中运用Request对象和Response对象实现对用户登陆页面和用户注册页面的表单数据的获取。
八、主要参考书目
1.《WEB应用程序开发教程》,姜卫编,人民邮电出版社,2009年
2.《ASP程序设计》第二版,梁建武编,水利水电出版社,2007年
展开阅读全文