第四章 ASP内置对象文档格式.docx
- 文档编号:19674102
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:27
- 大小:86.93KB
第四章 ASP内置对象文档格式.docx
《第四章 ASP内置对象文档格式.docx》由会员分享,可在线阅读,更多相关《第四章 ASP内置对象文档格式.docx(27页珍藏版)》请在冰豆网上搜索。
–IIS解读完ASP文档时
–调用了Response.End方法时
–调用了Response.Flush方法时
(2)设置Response.Buffer属性
•方法:
Response.Buffer=True
•注意:
必须在没有任何数据输出到浏览器以前进行。
放在文档的最前面
(3)为什么要设置缓冲区?
•如果不设置缓冲区,所有的数据都会直接下载给浏览器,而数据一旦下载到浏览器,就无法中途取消。
•缓冲区的优点是:
暂时不输出,直到确定某一情况时,才将写入缓冲区的数据输出到浏览器,否则就将缓冲区的数据取消。
(4)送出与取消缓冲区的数据
•调用Response.End或Response.Flush强制将缓冲区的数据送出。
•调用Response.Clear清除缓冲区的数据。
%Response.Buffer=True%>
html>
body>
%
Response.write“强制送出缓冲区的数据”
Response.Flush
Response.write“接下来取消缓冲区的数据”
Response.Clear
%>
/body>
/html>
想一想:
哪些数据会下载到浏览器?
•下载到浏览器的数据:
、<
、强制送出缓冲区的数据、<
•写到缓冲区而又被取消的数据:
接下来取消缓冲区的数据
4.1.5检查浏览器是否还在联机中
•Response.IsClientConnected属性:
值为True,则表示浏览器在联机中;
若为False,则表示已经离线。
•一般把该判断放在耗时的循环中,以决定是否提早脱离循环,或者放在某一段耗时之语句的前面,例如:
While
条件式
...循环内的程序
IfNotResponse.IsClientConnectedThen
Response.End
End
Wend
4.2Request对象
获取客户端提交给服务器的信息
•Request.Form:
获取post方式提交的数据
•Request.QueryString:
获取Get方式提交的数据
•Request.ServerVariables:
获取服务器相关的信息
•Request.BinaryRead:
利用二进制方式获取Post方式提交的数据,参数为字节数
4.2.1读取HTML的表单字段
(1)使用Request读取表单内容。
form.htm和Echo.asp
(2)表单的组成对象:
输入字段、提交按钮、处理程序
(3)表单的几个重要属性:
Aciton:
表示按下提交钮之后,指定Sever端处理这个输入表单的程序。
Method:
表示表单数据传送到Server的方式,其设置值有GET和POST两种。
Type:
表单类型
Name:
表单名称
(4)Get与Post的区别
•GET:
–当提交按钮被按下时,表单上的数据会附在网址之后一起送到Server,执行效率比较好
–浏览器地址栏能看到用户提交的信息
–能够传送的数据量有限制的(大约2K左右)
•POST:
–浏览器会等候Server来读取数据,相对更加安全
–在传送的数据上没有什么限制
4.2.2文本输入字段
(1)文本输入框
inputtype=“text”size=“20”name=“name”value=“zhangsan”>
(2)密码输入框<
inputtype=“password”>
(3)文本输入区<
textareaname=“comments”rows=“4”cols=“60”>
简易的访问留言簿
Gboard.htm:
BODYBgColor="
#FFFFFF"
>
FORMAction="
gbook.asp"
Method="
POST"
TABLEBorder=0>
TR>
TD>
姓名:
/TD>
InputType="
Text"
Size="
20"
Name="
Name"
/TR>
Email<
60"
Email"
TRValign=Top>
留言:
TextareaName="
Word"
Rows="
6"
cols="
/Textarea>
/TABLE>
INPUTType=SubmitValue="
提交"
/FORM>
/BODY>
Gbook.asp的前半段:
判断输入数据的完整性
Name=Request("
Email=Request("
Word=Request("
IfName=EmptyThen
Response.Write"
姓名字段未填,请返回上一页,重新输入!
"
Response.End
EndIf
IfEmail=EmptyThen
Email字段未填,请返回上一页,重新输入!
IfWord=EmptyThen
留言字段未填,请返回上一页,重新输入!
%>
Gbook.asp的后半段:
显示留言内容
HTML>
TABLEWidth="
100%"
Border=0>
留言者:
%=Name%>
Email:
%=Email%>
TRBgColor=Yellow>
TDColSpan=2>
%=Word%>
/HTML>
4.2.3下拉菜单
selectname=“city”>
option>
北京市
上海市
广州市
重庆市
/select>
•例子:
form3.htm和echo3.asp
4.2.4复选框与单选钮
(1)复选框
•<
INPUTType=CheckBoxName=“”Value=“”>
•form4b.htm和echo4b.asp
(2)单选框
inputtype=RadioName=“”Value="
checked>
•form5.htm和echo5.asp
4.2.5其他类型的表单字段
(1)隐藏字段:
inputtype=hidden…>
PersForm.aspPersonH.asp
(2)重置按钮:
inputtype=Reset…>
4.2.6超链接传递数据
ahref=“linkdata.asp?
userid=王小二&
userpwd=hello”>
传递参数<
/a>
4.2.7Request.ServerVariables方法
读取客户端、服务器端相关信息。
X=Request.ServerVariables("
环境变量”)
(1)读取IP地址
•服务器IP地址(本机地址):
ServerIP=Request.ServerVariables("
LOCAL_ADDR"
)
•客户机IP地址:
ClientIP=Request.ServerVariables("
REMOTE_ADDR"
GetIP.asp
(2)读取目录文件信息
•www根目录或文件所在的虚拟目录的实际路径wwwroot=Request.ServerVariables("
APPL_PHYSICAL_PATH"
•被打开的ASP网页的虚拟路径文件名称vpath=Request.ServerVariables("
PATH_INFO"
•被打开的ASP网页的实际路径文件名称ppath=Request.ServerVariables("
PATH_TRANSLATED"
mulu.asp
(3)显示所有的服务器环境变量
•servervariables.asp
TABLE>
B>
ServerVariable<
/B>
Value<
%ForEachnameInRequest.ServerVariables%>
%=name%>
%=Request.ServerVariables(name)%>
%Next%>
上机练习1
•设计一个用户注册界面,提交后将用户所填信息显示出来,并显示用户注册时机器IP地址
4.3Application对象
•网站所有的用户公用一个对象,保存在服务器端
•服务器开启时对象被创建,保存的信息在服务器运行期间可永久保存
•定义Application对象方法:
–Application(“对象名”)=值
•两个方法:
–Lock()
–Unlock()
•两个事件:
–Application_OnStart()
–Application_OnEnd()
•主要应用:
聊天室、网站计数器
1.了解变量的生命周期Life01.asp
Response.write“进入网页时,data1=“&
data1
data1=data1+100
Response.write“网页结束时,data1=“&
data1
•不断刷新,结果都一样。
•说明,虽然data1在网页结束时的值等于100,但是每次重新进入网页时,其值都会恢复成Empty。
利用Application对象记录变量内容
•如果希望在网页结束执行时,还能够保留变量的内容,可以借助Application对象来实现。
•例Life02.asp
data1=application("
data1"
Response.write"
进入网页时,data1="
&
Data1=data1+100
网页结束时,data1="
application("
)=data1
说明
•网页结束前的“Application(“data1”)=data1”:
该语句的作用是将data1的变量内容记录在Application对象里面。
data1=application(“data1”):
•该语句是将记录在Application对象中的data1的内容读回来设置给data1变量。
•可以直接把Application(“data1”)视为一个变量,则Application(“data1”)不仅可以象data1一样,当作一个变量来使用,同时也可以在网页结束时,把data1的内容保留下来
•例子life03.asp。
2.访问计数器
•由于Application对象可以在网页结束时,依然将数据保留下来,所以经常被拿来制作访问计数器。
•Countv1.asp:
%Application("
counter"
)=application("
)+1
BODY>
您是本站第<
%=application(“counter”)%>
位贵宾!
•将Application(“counter”)视为一个计数器变量,每当网页被浏览时,就将计数器变量加一。
•想一想:
两个用户同一时刻访问会出现什么情况?
Application对象的方法
•Application对象有两个方法,都是用于处理多个用户对存储在Application中的数据进行写入的问题:
–Lock方法:
锁定Application对象,禁止其他客户访问
–Unlock方法:
解除锁定,允许其他客户访问
改进的访问计数器一
Countv2.asp:
Application.lock
Application("
Application.unlock
改进的访问计数器二-countv3.asp图形计数器
functionG(counter)
dims,i,num
s=cstr(counter)
fori=1tolen(s)
num=mid(s,i,1)
myimage=myimage&
imgsrc="
num&
.gif>
Next
G=myimage
endfunction
本站第<
%=G(application("
))%>
位贵宾
3.简易聊天室
•Chat.asp
mywords=request(“mywords”)
Application(“chat”)=application(“chat”)&
”<
br>
”&
mywords
Response.writeapplication(“chat”)
4.Application对象的生命周期
•Application对象的生命周期起于IIS/PWS开始运行而且有人开始联机时,终止于IIS/PWS关闭。
•关闭浏览器Application对象不会消失。
•为了保证访问计数器不会流失,将访问计数器写到文件是最普遍的方法。
4.4Session对象
•在服务器端,为用户分配的用来保存用户信息的对象,页面跳转时信息一直保留
•属性:
–SessionID:
–Timeout:
有效期
–Abandon():
清除存储在session中的所有对象
•事件:
–Session_OnStart()
–Session_OnEnd
1.使用SessionID属性
•Sessionid.asp
Response.writeSession.SessionID
2.Session对象与Application对象的差异
Life04.asp
%
data1=session("
session("
Session对象与Application对象的差异
Application对象是所有联网机器所有网页共享的对象,
而Session对象是某一联网机器所有网页的共享对象。
3.Session对象的实际应用
•Session对象的最大优点就是可以把某一个联机上网者的信息保留下来,让后续的网页读取,其应用范围很广。
Session应用之一:
必须输入帐号密码的网页
•一般做法:
query0.htm
•缺点:
每次进行不同的查询时,都必须重新输入账号和密码。
•运用session对象:
login.htm、check.asp
Session应用之二:
强迫进入首页的网页
在download.asp中加入:
ifsession("
beenhome"
)=emptythen
Response.Redirect"
home.asp"
endif
在home.asp中加入:
)=true
Session应用之三:
幸运号码赠奖网页
•上一节计数器存在的漏洞:
连续按刷新钮。
•防止办法:
使用session对象
Countv4.asp:
%ifsession(“counter”)=emptythen
Application.lock
Endif%>
%=session("
)%>
•记录IP地址。
4.Session对象的生命周期
•Session对象不是免费的,它会占用若干的系统资源。
所以IIS/PWS的做法是,联机者超过若干时间(默认20分钟)没有访问任何网页,即将该联机者所使用的Session对象全部释放。
•关闭浏览器session对象消失。
•解决方案:
–延长断线时间:
session.timeout=n‘单位:
分钟
–使用Cookies对象:
把联机者的信息记录在浏览器里
4.5Cookies集合对象
•Application对象和Session对象可以把信息记录在Server端,而Cookies对象则会借助浏览器所提供的Cookies功能将信息记录在客户端。
•Cookies对象,必须配合浏览器的Cookies功能才有效。
1.Cookies语法
•Cookies对象是附属于Response及Request对象的属性,使用时需要在前面加上Response和Request。
例如:
•‘将100写入名称为“data1”的cookies
Response.Cookies(“data1”)=100
•‘读取名称为“data1”的cookies
data1=Request.Cookies(“data1”)
写入Cookies要使用Response.Cookies,而读取Cookies要使用Request.Cookies。
•我们试着将Life02.asp的程序改成Life05Er.asp:
Data1=Request.Cookies(“data1”)
data1&
Response.Cookies(“data1”)=data1
•执行后,产生“类型不匹配”的错误。
•因为在没有数据的情况下,Application和Session对象的返回值是Empty,而Request.Cookies却是返回空字符串。
•在VBS中,空字符串是不能与数值一起运算的,而Empty却是可以的。
•解决办法:
Data1=Request.Cookies(“data1”)后面增加语句:
Ifdata1=“”Thendata1=Empty。
•Life5.asp
2.Cookies的生命周期
•Cookies的生命周期开始于浏览器被执行时,止于浏览器结束执行时(关闭浏览器)。
•如果上网者离开30分钟,没有关闭浏览器,等他回来时,Cookies对象和Session对象有什么变化呢?
•答案是Session对象消失了,Cookies对象仍然存在。
•设置Cookies的生命周期:
Response.Cookies(“UserID”)=“Kjwang”
Response.Cookies(“UserID”).Expires=#2005/10/28#
•从本日起几日内有效:
Response.Cookies("
UserID"
)="
kjwang"
ExpireDate=DateAdd(“d”,N,Date)‘从今日起算N日后
).Expires=
FormatDateTime(ExpireDate)
•如果我们设置了Cookies的使用期限,则该Cookies将成为浏览器之间共享的Cookies,否则Cookies只属于各自的浏览器。
•未到期之前,即使关闭浏览器或关机cookies(“UserID”)仍然保存在你的浏览器中。
4.6Server对象
•访问服务器上的方法和属性
–ScriptTimeout:
设置服务器响应网页请求需要的时间,默认90s
–Createobject
–HTMLEncode
–URLEncode
–Mappath
–Execute
–Transfer
1.Server.CreateObject:
建立服务器组件实例
•Server.CreateObject方法:
创建已经注册到服务器上的ActiveX组件实例。
可以实现数据库连接、文件访问、广告显示和其他VBScript不能提供的功能。
•例如:
Setfs=server.createobje
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第四章 ASP内置对象 第四 ASP 内置 对象
![提示](https://static.bdocx.com/images/bang_tan.gif)