导航

心动吧黑客BLOG

自发研究:须要多维思想而且要想不可能为可能的人才能做到

« SupeV 1.0.1 0dayASp fso组件(第十二节) »

ASP server对象(第十一节)

作者:心动吧明生KISS

 这一节主要是讲asp的server对像.里面包含了一些常用技巧.如何创建另一个组件的实例化。一般用来操作其他组件。比如ado,fso(filesystemobject)...等等...其实在这一节里面比较好理解的应该是htmlencode和urlencode这二个编码函数。就是将字符转换成其他的编码。没别的啦。。。最难理解的应该就是execute,当用它调用其他的页面时。是先执行被调用页面然后才会回来自己的代码块继续执行下面的代码(好像也不太难理解)。哈哈。反正asp还是比较简单的..好了现在看代码

示例图:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>server对像的学习</title>
</head>

<body>
<%
xx=request.Form("abcxd")


if request.Form("radiobutton")="scripttimeout" then
server.ScriptTimeout=xx '设置scripttimeout超时的时间.-1就是永远不超时(不推荐)
for i=1 to 5 '循环五次
response.write "执行第" & i & "秒<br>"
times=now '取得当前时间
do 'dateadd函数返回一个被改变了的日期
loop until now>dateadd("s",1,times) '每循环一次会停一秒.那么整个程序必须要五秒才能运行完毕。
next '那么如果你把超时时间设置成四秒的话。那么程序就会造成没有执行完就被结束了。然后就会返回一个超时的错误给你
response.Write("执行完成")
end if

if request.form("radiobutton")="createobject" then
'set 变量名=server.createobject(对像名) 创建对像时记住要用到set不要忘了哦
set conn=server.createobject("ADODB.connection") '这里创建了一个数据库对像。用来链接数据库的。就先学这些。
'到时候再加深
response.write "你创建了一个(adodb.connection)数据库对像名存为:conn"
end if

if request.form("radiobutton")="mappath" then '取路径
response.write server.mappath(request.form("abcxd")) '从文件名输出当前所得到的路径
end if

if request.Form("radiobutton")="htmlencode" then '将字符转换.第一个地址是经过html语言执行后才显示.而第二是直接显示出代码
response.Write "示例<a href=http://www.abcxd.com>点击</a><br>"
response.write server.HTMLEncode(request.Form("abcxd"))
end if

if request.form("radiobutton")="urlencode" then
response.Write "示例<a href=http://www.abcxd.com>点击</a><br>"
response.write server.urlencode(request.form("abcxd"))
end if

if request.form("radiobutton")="execute" then
server.execute("被呼叫的.asp")
response.write " -如果呼叫成功会出现(abcxd)"
'execute的意思是执行其他的asp文件.当执行了此句。会先运行完后才会返回当前asp文件执行他下面的代码
'被呼叫的.asp代码
'<%
'response.write "abcxd"
'% > 请把中间的空格去掉
end if

%>
<form id="form1" name="form1" method="post" action="">
<p>
<label>
请输入:
<input name="abcxd" type="text" value="" size="45"/>
</label>
<label>
<input type="submit" name="Submit" value="提交" />
</label>
</p>
<label>
<input type="radio" name="radiobutton" value="scripttimeout" onclick="abcxd.value='6'"/>
对像超时设置</label>
<label>
<input type="radio" name="radiobutton" value="createobject" />
对像创建
<input type="radio" name="radiobutton" value="mappath" onclick="abcxd.value='.'"/>
显示路径</label>
<label>
<input type="radio" name="radiobutton" value="htmlencode" onclick="abcxd.value='示例<a href=http://www.abcxd.com>点击</a>'"/>
html编码设置</label>
<label> <br />
<input type="radio" name="radiobutton" value="urlencode" onclick="abcxd.value='示例<a href=http://www.abcxd.com>点击</a>'"/>
url编码设置</label>
<label>
<input type="radio" name="radiobutton" value="execute" />
execute方法</label>
</form>
</body>
</html>

其他地方转过来的

 

server对象
一、server的意义
server对象是在以后做asp网站时不可缺少的东西,通过server对象可以创建activex组全的实例。activex组件是一些扩展asp功能的对象,通过server对象可以把这些组件实例化,这样可以在asp脚本中使用它们所提供的功能。
比如:我们在asp中访问数据库要要通过ado(activex data object)组件,要想使用ado组件提供的功能,就必须要使用server对象的方法来将它实例化。
注:组件需要实例化才能使用。
二、server的方法
server对象只有一个属性:scripttimeout属性
它表示超时值,就是在脚本运行超过它所定义的时间后,就作超时处理。(它用来设定访问的超时值,就是网页运行最多允许多长时间,如果超过这个时间,就作超时处理。)
     用法:server.scripttimeout=秒数
     注:一般情况下,这条语句要放在网页代码的最前面。
     例:time.asp
<%
server.scripttimeout=10 ‘脚本超时的时间
x=0
for i=1 to 5           ‘循环5次
times=now
do
loop until now>dateadd("s",10,times) ‘每次循环的时间为10秒
next
response.write("执行完成了!")
%>
解:这段代码的作用是使一次循环的时间为10秒,共循5次,也就是说,这段代码共要运行50秒的时间,而我们将脚本超时的时间设为10秒.
显示结果:错误提示,超出了脚本运行的最长时间。
解决方法:将脚本超时的时间设为50秒以上,结果就会显示正确。
需要运行很长时间的脚本要设置这个属性,这样可以不让程序执行超时。一般情况下,默认的超时时间是90秒。默认:server.scripttimeout=90
如果希望脚本永不超时的话,可将值设为-1.如server.scripttimeout=-1
    一般情况下不要这样做,因为如果你的程序可能占用很多服务器资源,会造成服务器无法提供服务给其它用户,甚至会造成服务器的崩溃。
 
三、SERVER对象的方法
   

方法
说明
Createobject
创建一个ACTIVEX组件实例
MapPath
将指定的虚拟路径转换为真实的路径,这里的虚拟路径指的是WEB服务器所建立的虚拟路径。
HTMLEncode
将字符串应用为HTML编号
URLEncode
将字符串应用为URL编码

 
1、Createobject方法
   创建一个ActiveX组件实例
用法:set 对象实例名=server.createobject(“组件名,组件类型”)
注:我们在使用Createobject方法时,一定要在前面加上set关健字。
例:<%
    Set conn=server.createobject(“ADODB.connection”)
%>
这样一个对象的实例的方法就建立好了。
 
2、MapPath方法
这个方法可以把一个虚拟的路径转换为实际路径。
虚拟路径:就是我们在网站设置中,使用的路径规则。如:”/fifasp/test.asp”
实际路径:是指文件在硬盘上的实际位置。
例:test.asp
<%
path=server.mappath("/index.asp")
response.write(path)
%>
显示结果:c:\inetpub\wwwroot\index.asp
解:
是mappath("/index.asp")方法将虚拟路径转换成了真实路径。
 
2、 方法HTMLEncode
娈量=SERVER.HTMLENCODE(“字符串”)
有时候我们会碰到一些情况,比如:想在网上演示一段ASP代码,HTML代码,要是把演示的内容直接写到代码中,这段代码就会被浏览器所渲染,显示内容也就会和自己的意愿不一样了。
例如:<%
response.write("<a href=fif.hlw.cn>fif小组</a>")
response.write(server.HTMLEncode("<a href=fif.hlw.cn>fif小组</a>"))
%>
显示结果:fif小组小组</a><a href=fif.hlw.cn>fif
          解:第一段代码输出的内容在网页上显示成了链接。
              第三段代码输出显示的就是代码
查看网页记事本的源代码:
<a href=fif.hlw.cn>fif小组</a>&lt;a href=fif.hlw.cn&gt;fif小组&lt;/a&gt;
第一段代码显示:<a href=fif.hlw.cn>fif小组</a>语句输出的内容是正常的HTML代码
第二段代码显示:&lt;a href=fif.hlw.cn&gt;fif小组&lt;/a&gt;
语句的输出内容是经过HTMLEncode方法转换的内容。
例:
&gt;——这是大于号标签
&lt;——这是小于号标签
   解:大于号和小于号在HTML里面,会被认为是一个HTML的标签,而被浏览器渲染。而浏览器遇到(&gt;)这个字符串就会把它转换为大于号输出给浏览者。
URLEncode方法
变量=server. URLEncode(“字符串”)
URLEncode方法与HTMLEncode方法类似
例:
<%
response.write(server.URLEncode("<a href=fif.hlw.cn>fif小组</a>"))
%>
显示结果:%3Ca+href%3Dfif%2Ehlw%2Ecn%3Efif%D0%A1%D7%E9%3C%2Fa%3E
源文件代码:%3Ca+href%3Dfif%2Ehlw%2Ecn%3Efif%D0%A1%D7%E9%3C%2Fa%3E
解:这就是URL编码,我们在实际编写程序的时候,会经常需要将网址转换为URL编码,这样可以确保用户提交的信息,都能被正确传输。

原创文章如转载,请注明:转载自心动吧黑客BLOG [ http://www.abcxd.com/abcxd/ ]

本文链接地址:http://www.abcxd.com/abcxd/abcxdArticle/asp/server.html

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

黑客榜之热文排行

黑客榜之本年排行

黑客榜之本月排行

黑客榜之随机文章

网站分类

搜索内容

最新评论及回复

最近发表

所属分类下的文章

日历

Copyright ⊙ 2004-2009 心动吧 UrL:ABCXD.CoM All RiGhts Reserved