第五章ASP的Request和Response对象ASP内置对象提供了Request,Response,Server,Session和Application等5个内置对象,这些对象在使用时并不需要经过任何声明或建立的过程。第五章ASP的Request和Response对象对象名称对象功能Request对象Request对象负责从用户端接收信息Response对象Response对象负责传送信息给用户Server对象Server对象负责控制ASP的运行环境Session对象Session对象负责存储个别用户的信息,以便重复使用Application对象Application对象负责存储数据以供多个用户使用第五章ASP的Request和Response对象一:Request二:Response三:综合第五章ASP的Request和Response对象一:RequestRequest[.集合|属性|方法](变量)集合主要有:form、QueryString、ServerVariables和Cookies第五章ASP的Request和Response对象一:Request5.2.1form的属性(1)form的名称属性:便于脚本语言引用或控制该表单(2)form的动作属性:选择一个ASP文件名,该文件用来处理该表单用户输入的数据。如在当前网页中直接处理表单的数据,此属性不需要填写任何内容。(3)form的方法属性:选择将表单的数据传输到服务器的方法。有post和get两种。Post:将在HTTP请求中嵌入表单数据;get:将表单数据直接附加到处理该页的动作文件URL中。由于url的长度限制在8192个字符以内,所以get方法会出现数据被截取,同时考虑到网络数据传输的安全性,建议使用post较安全。第五章ASP的Request和Response对象一:Request5.2.1form的属性(4)form的MIME编码属性:提交给服务器进行数据处理的数据类型。(5)form的目标属性:打开文件时的窗口,属性有_self、_blank、_parent、_top,默认_self第五章ASP的Request和Response对象一:Request5.2.2form的数据接收Request接收数据时有两种方法Request.Form:表单的方法为“POST”Request.QueryString:表单的方法为“GET”注:无论通过哪种方法接收数据,Request所接收的数据类型都是文本型。见例子:5-2-1.asp、5-2-2.asp、5-2-3.asp第五章ASP的Request和Response对象一:Request5.2.2form的数据接收Request接收数据时有两种方法Request.Form:通过表单传数据,表单的方法为“POST”变量=Request.Form(“表单元素名称”)Request.QueryString:通过URL传数据,表单的方法为“GET”变量=Request.QueryString(“参数名称”)注:无论通过哪种方法接收数据,Request所接收的数据类型都是文本型。见例子:5-2-1.asp、5-2-2.asp、5-2-3.asp第五章ASP的Request和Response对象一:Request5.2.3URL的数据接收QueryString集合ahref=5-2-5.asp?username=conquer&usersex=男用户信息/aHref:表示接收并处理数据的文件。?:表示之后的URL内容为要传递的参数。参数=值:传参及值。&:表示多个参数同时传递时的间隔符。见例子:5-2-4.asp、5-2-5.asp第五章ASP的Request和Response对象一:Request5.2.3URL的数据接收第五章ASP的Request和Response对象一:Request5.2.4常用的服务器变量ServerVariables集合变量名称内容说明LOCAL_ADDR存放访问的服务器IP地址REMOTE_ADDR发出请求的客户端计算机IP地址REQUEST_METHOD客户端提出请求的方法SERVER_NAME服务器端计算机的DNS名称SERVER_PORT服务器端的端口号IfRequest.ServerVariables(“REQUEST_METHOD”)=“POST”then见例子:5-2-7.asp第五章ASP的Request和Response对象一:Request补充:表单中的提交按钮的用法用法一(在action中加入数据处理的网页)见例子:5-2-7a.asp和5-2-7b.asp用法二(将要处理的数据与表单放在同一个网页中)见例子:5-2-7c.asp或者是5-2-7.asp第五章ASP的Request和Response对象一:Request二:Response三:综合第五章ASP的Request和Response对象二:ResponseResponse对象的属性属性功能说明Buffer表明页输出是否被缓冲CacheControl决定代理服务器是否能缓存ASP生成的输出Charset将字符集的名称添加到内容类型标题中ContentType指定响应的HTTP内容类型Expires在浏览器中缓存的页面超时前,指定缓存的时间ExpiresAbsolute指定浏览器上缓存页面超时的日期和时间IsClientConnected表明客户端是否与服务器断开Pics将PICS标记的值添加到响应的标题的PICS标记字段中Status服务器返回的状态行的值第五章ASP的Request和Response对象二:ResponseResponse对象的方法方法功能说明AddHeader设置HTML标题AppendToLog在Web服务器的日志文件中记录日志BinaryWrite按照字节格式向客户端浏览器输出数据,不进行任何字符集的转换Clear清除服务器中缓存的HTML信息End停止处理.asp文件并返回当前的结果Flush立即发送缓冲的输出Redirect重定向当前页面,尝试连接另外一个URLWrite直接向客户端浏览器输出数据第五章ASP的Request和Response对象二:ResponseResponseBuffer属性:Write方法:Redirect方法:End方法:Clear方法:NEXT第五章ASP的Request和Response对象二:ResponseBuffer属性:ASP文件在服务器上有两种工作方式:不使用缓冲区:Web服务器将ASP文件执行结果直接输出到客户端(默认)使用缓冲区:先将ASP文件的执行结果放入缓冲区中,当整个ASP文件内容全部执行完,再将整个网页的结果统一送给客户端。第五章ASP的Request和Response对象二:ResponseBuffer属性:Buffer的用法格式:Response.Buffer=True|FalseTrue表示用缓冲区,False表示不用缓冲区注:如用缓冲区,则Response.Buffer=True必须放在网页的第一行处。后面要讲的Redirect、Clear等要求用缓冲区具体操作见后面的例子第五章ASP的Request和Response对象二:ResponseWrite方法:Write的语法格式Response.Write(常量|变量|表达式|HTML标签)第五章ASP的Request和Response对象二:ResponsehtmlheadtitleWrite输出/title/headbody%Response.Write(FontColor=Redsize=6)Response.Write(欢迎访问br我们的站点)Response.Write(/Font)Response.Write(hrcolor=red)%/body/html第五章ASP的Request和Response对象二:Response注:如果在%和%之间只有一条输出语句,则可用%=变量%来代替%Response.Write(变量)%htmlheadtitleWrite输出/title/headbody%=现在时间为:&now()%/body/htmlResponse.Write(“现在时间为:“&now())第五章ASP的Request和Response对象二:ResponseRedirect方法:Redirect的语法格式Response.Redirect(URL)表示在代码中自动跳转到其他网页或跳转到其他网站注:此方法要求使用缓冲区,则在网页的第一行处输入%Response.Buffer=True%见例子:5-3-3.asp第五章ASP的Request和Response对象二:ResponseEnd方法:End的语法格式Response.End()注:此方法可使服务器停止当前网页脚本的处理,并返回已经执行的脚本结果。见例子:5-3-4.asp第五章ASP的Request和Response对象二:ResponseClear方法:Clear的语法格式Response.Clear()注:此方法的功能是清除缓冲区中的所有内容,则要求必须启用缓冲区才能使用该方法,如未启用缓冲区,则会导致运行出错。见例子:5-3-5.asp第五章ASP的Request和Response对象二:ResponseResponse实例见例子:5-3-6.asp、5-3-7.asp第五章ASP的Request和Response对象一:Request二:Response三:综合第五章ASP的Request和Response对象三:综合Cookie的使用(1)Cookie的使用价值:当用户访问Web站点时,Web服务器为了保证客户端的安全问题,不允许在客户端随便访问文件或运行程序,如果服务器确实想在客户端上存储一些对用户有益的信息而不影响用户的安全,如用户名,访问某网站的次数等,此信息存储在Cookie中,每个网站都可以设置自己的Cookie,Cookie中的数据完全同Web服务器的程序设计者决定。在ASP中,Cookie的读写由Request和Response来完成。第五章ASP的Request和Response对象三:综合Cookie的使用(2)Cookie的创建:(写)用Response两种方法:单健值Cookie的创建多健值Cookie的创建注意两点:一定要通过Expires属性设置该Cookie的有效日期在写入Cookie时,需要启用缓冲区。第五章ASP的Request和Response对象三:综合Cookie的使用单健值Cookie的创建语法:Response.Cookies(“Cookie名称”)=值Response.Cookies(“Cookie名称”).Expires=日期如:Response.Cookies(“username”)=mlqResponse.Cookies(“username”).Expires=#2010-10-1#多健值Cookie的创建语法:Response.Cookies(“user”)(“name”)=mlqResponse.Cookies(“user”)(“age”)=25Response.Cookies(“user”)(“sex”)=男Response.Cookies(“user”).Expires=#2010-10-1#第五章ASP的Request和Response对象三:综合Cookie的使用(3)Cookie的数据的读:(取)用Request变量名=Request.Cookies(“Cookie名称”)写:5-4-1.asp;读:5-4-2.asp第五章ASP的Request和Response对象三:综合写:5-4-1.asp%Response.Buffer=true%htmlheadtitle单值Cookie事例