- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第9章 服务器对象
第9章 服务器对象
在ASP中,除了前面讨论的四个内置对象外,还有一个称为服务器的对象(Server),用它可以创建其它类型的对象,本教材第11章的所有对象都要使用服务器对象来创建,服务器对象还有一些其它属性和方法。本章主要内容如下:
用服务器对象创建对象
对发送内容进行编码
求文件的服务路径
脚本运行时间的控制
9.1 用服务器对象创建其它对象
除了ASP中内建的对象外,其它所有对象都必须通过服务器对象来创建,如后面要讨论的文件对象、数据库对象,以及其它已注册到服务器上的ActiveX组件对象。
创建对象一般形式为:
set 对象变量名=Server.CreateObject(“对象组件名称”)
例如:
set conn=Server.CreatObject(“ADODB.connection”)
创建了一个用于处理数据库的对象,其中conn为对象变量名,ADODB.connection为对象组件名称。
创建的每一个对象,都占用一些系统资源,如果对象不再使用时,应该释放其占用的资源,其语法为:
set 对象变量名=nothing
例如:
set conn=nothing
9.2 编码发送内容
在HTML语言,将某些符号赋予了新的含义,因此,ASP中将要发送的内容发送给浏览器时,应将包含的可能产生对浏览器来说具有特殊含义的符号进行必要的转换。为此,服务器对象根据不同的需要设计了几个实现转换的方法。
1. HTML编码字符串
当你将一段来自于数据库或其它位置的内容插入到HTML文档中时,浏览器会把其中的一些符号当作HTML的标签来识别,从而显示出不正常的结果,请看例9-1。
【例9-1】发送包含特殊信息的网页
HTML
BODY
%
response.write 网页中,加黑显示一段文字的使用形式为:B文字内容/BBR
response.write 在C语言中,变量a、b中取较大者的表示形式为:ab?b:a
%
/BODY
/HTML
显示结果如图9-1所示,显然是不希望的结果。
图9-1 正常文字被当作标签处理
为此,可以使用服务器对象来对输出内容进行编码。形式如下:
Server.HtmlEncode(“输出字符串”)
即把上例改成如下形式:
【例9-2】编码输出字符串
HTML
BODY
%
response.write Server.HtmlEncode(加黑显示文字的形式为:B文字内容/B)
response.write BR
response.write Server.HtmlEncode(两变量中取较大者的表示形式为:ab?b:a)
%
/BODY
/HTML
浏览结果如图9-2所示。
如果被编码的字符串是来自于数据库的某一字段,这时,很可能是一个Null值,而直接对它进行编码将产生运行错误。如例9-3所示。
图9-2 经转换后的特殊符号
【例9-3】空对象的转换
%
dim str
str=Null
response.write Server.HtmlEncode(str)
%
运行这个脚本时,将会接收到如下VBScript错误信息:
Microsoft VBScript 运行时错误 错误 800a000d
类型不匹配: Server.HtmlEncode
/L9_3.asp, 行4
为了避免这一错误的发生,在输出来自于数据库的内容时,应先使用函数isNull进行判空的操作。形式如下:
If isNull(str) then
Response.write “”
Else
Response.write Server.HtmlEncode(str)
End if
2.URL编码字符串
对于发送给服务器的带有查询字符串的重定向命令中,有时也可能包含一些特定的字符。例如,要通过网页abc.asp查询一个包含a+b的表达式,可能使用如下形式:
% Response.Redirect abc.asp?exp=a+b%
而此时,服务器端接收到的查询字符串变成了“exp=a b”,即其中的“+”变成了空格。为了让服务器端能接收到正确的查询字符串,可以使用服务器对象的URLEncode 方法。使用形式如下:
Server.URLEncode(“编码字符串”)
即把上面的一行改写成如下形式:
% Response.Redirect abc.asp?exp= Server.URLEncode(a+b)%
注意:不能将整个查询字符串作为参数来进行编码,即不能把上式写成如下形式:
% Response.Redirect abc.asp? Server.URLEncode(exp=a+b)%
因为式中的“=”
文档评论(0)