ASP的内置对象Server

  Server 对象提供对服务器上的方法和属性的访问 , 其中大多数方法和属性是作为实用程序的功能服务。(IIS HELP翻译)有了 Server 对象,你就可以在服务器上启动 ActiveX 对象例程,并使用 Active Server 服务提供象 HTML 和 URL 编码这样的函数。

  一,Script.ScriptTimeout

  在脚本运行超过一段时间之后,即作超时处理。服务器一般的默认脚本运行时间是90秒。你可以从“Internet信息服务”中“默认Web站点”的属性弹出框中看出,你也可以自己设定。

  呵呵,上面的可不是,900秒了。应该是“主目录”标签中的“配置”对话框中,WINXP一样。

在理解脚本运行时间之前,先来看一个程序,主要功能就是进行计算网页执行时间的。

<script language=vbs>
startime=timer()
//以下为网页内容
for i= 1 to 5000 step 20
document.write("<hr width="∫(500+i)&">")
next
//结束时间
endtime=timer()
document.write ("页面执行时间:"&FormatNumber((endtime-startime)*1000,3)&"毫秒")
</script>

当然对应的ASP也就是看到许多站点都有的页面执行时间显示

1,time.asp

<%startime=timer()%>
<a href=#bot>到下面看执行的时间</a>
<%
for i= 1 to 5000
response.write("<hr width="∫(500+i)&">")
next
%>
当然中间还可以添加其它内容。<br>
<%endtime=timer()%>
<a name=bot></a>
<%=FormatNumber((endtime-startime)*1000,3)%>毫秒

那如果上面的程序变成for i= 1 to 5000000

呵呵,是不是机器快反应不过来的感觉,那这个就是脚本的执行时间了。

为了让程序能很好的执行,就该把脚本执行时间放长了。

怎么放长?把默认的改?呵呵,当然不是:)

<%Server.ScriptTimeout=110%>

时间的设定当然要是比默认90秒大的,现在的代码就是:指定服务器处理脚本在 110 秒后超时。
还有,脚本时间的确定要看自身的程序了,一般情况100秒左右也差不多了,即使能执行出来,可能观看网页的人早就把它叉叉了。

以上的ScriptTimeout就是Server对象唯一属性了
二,Server.HtmlEncode

HtmlEncode就是Server对象的其中一个方法了。它允许你对特定的字符串进行 HTML 编码,虽然 HTML 可以显示大部分你写入 ASP 文件中的文本,但是当你需要实际包含 HTML 标记中所使用的字符,就会遇到问题。这是因为,当浏览器读到这样的字符串时,会试图进行解释。

还是看一个程序,我想在页面显示“ ”这样的代码(附: 是空格的代码)那么当我进行书写的时候你会发现,浏览器已经给我解释了的。

空格的代码是: 

你会发现上面的代码都被执行了。

所以,为了要让一些特殊代码能够显示,就运用该方法了。

2,htmlencode.asp

<%Response.write ("这是没有采用 HTMLEncode 方法的测试。<br> 这里就另起一行,说明代码被执行。 ")%>
<hr>
<%Response.write Server.HtmlEncode("这是对 HTMLEncode 方法的测试。<br> 这里应该不会另起一行,也就是代码没有被执行了。 ")%>

这在许多网站,论坛都存在的一些BUG,不信你可以到各论坛试试:敲入 就是没有,急死你呢:)当然HtmlEncode只是其中的一个原因,最主要的还是UBB代码的转换。不过关于这点我也已经调试解决了。

三,Server.UrlEncode

正如 HtmlEncode 方法使客户可以将字符串翻译成可接受的 HTML 格式一样,Server 对象的 UrlEncode 方法则是根据 URL 规则对字符串进行正确编码,当字符串数据以 URL 的形式传递到服务器时,在字符串中不允许出现空格,也不允许出现特殊字符。为此,如果你希望在发送字符串之前进行 URL 编码,可以使用 Server.URLEncode 方法。

为方便起见,我们先看为处理送交,然后处理接受的效果。

3,urlencode.asp

<%filepath=request.servervariables("script_name")%>
接受URL中的值(没有处理接受值,发现值被解释了): <%=request.querystring("webjx")%>
<form action="<%=filepath%>">
你可以输入“<hr&gt”等代码看看:<input type="text" size="20" name="webjx"><input type="submit">
</form>
接受URL中的值(进行了urlencode编码,不会执行): <%=Server.URLEncode(request.querystring("webjx"))%>

当然你会发现,虽然不执行了,但会出现“<”变成了“%3C”,“>”变成了“%3E”,那这就是因为没有在发送之前处理。不过,我们还可以通过Replace函数将这些特殊代码再逆转过来。

4,vurlencode.asp

<%
function tihuan(what)
tihuan=what
if not isnull(what) then
tihuan=replace(tihuan,"%3C","<")
tihuan=replace(tihuan,"%3D","=")
tihuan=replace(tihuan,"%3E",">")
tihuan=replace(tihuan,"%26","&")
tihuan=replace(tihuan,"%20"," ")
tihuan=replace(tihuan,"%3B",";")
tihuan=replace(tihuan,"%22",""")
tihuan=replace(tihuan,"%2B","+")
tihuan=replace(tihuan,"%2F","/")
end if
end function
%>
<%filepath=request.servervariables("script_name")%>

接受URL中的值(没有处理接受值,发现值被解释了): <%=request.querystring("webjx")%>

<form action="<%=filepath%>">
你可以输入“<hr&gt”等代码看看:<input type="text" size="20" name="webjx"><input type="submit">
</form>
接受URL中的值(进行了urlencode编码,不会执行): <%=tihuan(Server.URLEncode(request.querystring("webjx")))%>

呵呵,其实上面我是做的无用功啦,真正应该是在发送之前就该处理下的,不过对学习该方法的举例确是个好方法:)

四,Server.MapPath

MapPath方法,具体的就是将指定的相对或虚拟路径,映射到服务器上相应的物理目录上。
用法,也就是语法了,如下:

Server.MapPath(Path)

Path 指定要映射物理目录的相对或虚拟路径。若 Path 以一个正斜杠 (/) 或反斜杠 (\) 开始,则 MapPath 方法返回路径时将 Path 视为完整的虚拟路径。若 Path 不是以斜杠开始,则 MapPath 方法返回同本文件中已有的路径相对的路径。这里需要注意的是 MapPath 方法不检查返回的路径是否正确或在服务器上是否存在。

当然这可以和Request.ServerVariables连起来使用看看。

5,mappath.asp

Request.ServerVariables("APPL_PHYSICAL_PATH") : <%=Request.ServerVariables("APPL_PHYSICAL_PATH")%><p>
Request.ServerVariables("PATH_INFO") : <%=Request.ServerVariables("PATH_INFO")%><p>
Request.ServerVariables("SCRIPT_NAME") : <%=Request.ServerVariables("SCRIPT_NAME")%><p>
Request.ServerVariables("URL") : <%=Request.ServerVariables("URL")%><p>
Request.ServerVariables("PATH_TRANSLATED") : <%=Request.ServerVariables("PATH_TRANSLATED")%><hr>
上面都是通过ServerVariables提取得出的值,下面就来运用mapath把一个虚拟地址转变为实际的物理地址。<p>
Server.MapPath(Request.ServerVariables("URL")) :<%=Server.MapPath(Request.ServerVariables("URL"))%><p>
或者自己随便写个不存在的路径,同样能够执行<p>
Server.MapPath("webjx.asp") : <%=Server.MapPath("webjx.asp")%><p>
再来个“/”的<p>
Server.MapPath("/webjx.asp") : <%=Server.MapPath("/webjx.asp")%><br>
Server.MapPath("\webjx.asp") : <%=Server.MapPath("\webjx.asp")%><p>

你会发现物理地址转变到IIS默认根目录下面了。
这就是如6to23之类的站点mappath的问题所在。还是虚拟主机好,即使是根,也还是自己站点的默认存放节点根。

注意测试的地址和根目录下的地址,对应的是同一文件夹(这就是虚拟主机),6to23之类是不会相同的。

有此些了解,对路径的处理应该要好多了,再返回我的站点,看看我对数据库的mappath路径的处理方法,相信又是一个理解层次了。

五,Server.CreatObject

Server.CreateObject 这个方法恐怕是 ASP 中最为实用,也是最强劲的功能了。它可用于创建已经注册到服务器上的 ActiveX 组件实例。这是一个非常重要的特性,因为通过使用 ActiveX 组件能够使你轻松地扩展 ActiveX 的能力,正是使用了 ActiveX 组件,你可以实现至关重要的功能,譬如数据库连接、文件访问、广告显示和其他 VBScript 不能提供或不能简单地依靠单独使用 ActiveX 所能完成的功能。也正是因为这些组件才使得 ASP 具有了强大的生命力。

恩,那今天就主要把Server对象学习了下,感觉好象是每个都有用的,重要啊。还有,需要说明的,如果您从本处转载,发现和本源件有差错,比如代码  、 &lt 、 &gt等等,根本就是被执行了的。都说明您的站点存在着这些问题。

时间: 2024-08-03 13:47:49

ASP的内置对象Server的相关文章

Asp.net内置对象之Cookies(简介/属性方法/基本操作及实例)_实用技巧

一.了解Cookies对象 Cookies是由Web服务器管理的存放在客户计算机中的一个数据集合.这些数据是客户端.服务器端相关的.也就是说客户浏览器每登录一个网站,在Cookies中就会保存客户浏览器与该网站的相关信息.即使客户用同一个浏览器登陆了多个网站,在Cookies中依然会保存浏览器与多个网站的相关信息,但Cookies中这些信息的管理是有序的,当客户浏览器再次登录某网站时,只有Cookies中相对应的信息会发生作用. Cookies是Web应用程序设计的一项很重要的技术,当Web服务

asp.net夜话之二:asp.net内置对象

在今天我主要要介绍的有如下知识点: Request Response Server Session Cookie Application <%%>及<%=%>表达式 准确地说,asp.net并没有内置对象这一说,jsp里确实把request.response这些当作jsp的内置对象,这里只不过是借用了一下jsp的说法而已.上面提到的很多都是在做asp.net开发时无需new就能使用的对象(类似的还有很多,在asp.net中所有的网页都是继承自System.Web.UI.Page这个

Asp.net内置对象之Server对象(概述及应用)_实用技巧

一.了解Server对象 Server对象提供对服务器上的方法和属性的访问以及进行HTML编码的功能.这些功能分别由Server对象相应的方法和属性完成. 二.Server对象的常用属性 (1).MachineName(2).ScriptTimeout:属性用于设置脚本程序执行的时间,适当地设置脚本程序的ScriptTimeout可以提高整个Web应用程序的效率.语法如下:Server.ScriptTimeout=time;(以s(秒)为单位) ScriptTimeout属性的最短时间默认为90

ASP.NET内置对象之Application对象_实用技巧

新建一个网站,包括两个网页,代码如下: 1.Index.aspx代码:  复制代码 代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Index.aspx.cs" Inherits="Index" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&

ASP编程入门进阶(七):内置对象Server

Server 对象提供对服务器上的方法和属性的访问 , 其中大多数方法和属性是作为实用程序的功能服务.(IIS HELP翻译)有了 Server 对象,你就可以在服务器上启动 ActiveX 对象例程,并使用 Active Server 服务提供象 HTML 和 URL 编码这样的函数.一,Script.ScriptTimeout在脚本运行超过一段时间之后,即作超时处理.服务器一般的默认脚本运行时间是90秒.你可以从"Internet信息服务"中"默认Web站点"的

C#与ASP.NET内置对象

问题描述 编写一个程序,用来记录用户图片,并在另一个程序中根据用户的选择将此图片作为一个HyperLink控件的图片显示出来要求:要用global.asax文件.Application对象.C#语言以及题目给出的HyperLink控件有点像这个:先进入这个网页http://images.google.cn/imgcat?num=10&complete=1&hl=zh-CN&newwindow=1&output=search&cid=1&sa=h然后点击任意一

Asp.net内置对象之Request对象(概述及应用)_实用技巧

前言:Request对象主要用于获取来自客户端的数据,如用户填入表单的数据.保存在客户端的Cookie等. 一.Request对象概述 1.主要属性    ApplicationPath  获取服务器上asp.net应用程序的虚拟应用程序根路径  Browser  获取有关正在请求的客户端的浏览器功能的信息,该属性值为:HttpBrowserCapabilities对  象  ContentEncoding  获取或设置实体主体的字符集.该属性值为表示客户端的字符集Encoding对象  Con

基础篇:认识ASP内置对象与组件

ASP内置Application,AspError,Request,Response,Session,ObjectContext,Server 等七个对象(Object), 而且每个对象有各自的属性(Property),方法(Method),集合(Collection)或事件(Event).现在我们就来介绍这几个名词的意义,好让我们更好地去理解ASP的内置对象: "对象"(Object)就像我们在日常生活中所看到的各种物体,例如计算机, 冰箱,汽车, 手机等等,而对象可能又是由许多对象

在COM组件中使用ASP内置对象

在一些项目中,通常需要采用C/S&B/S的混合架构来实现,这样就涉及到了Web开发,在MS的.Net没有出现之前,因为是运行于windows环境之上,理所当然的首选ASP来实现了,直到有一天,盖茨扛出了.Net大旗,振臂高呼:用洒家的.Net吧,安全快捷无副作用,一个字"牛B"! ASP经过这么多年的敲敲打打,一些自身难以克服的缺陷也渐渐浮出水面,此时听了他的话,兴奋地一阵小跑马上就.Net了,但几个闪着.Net金色光环的项目出手以后,结果并不尽如人意,于是暂时性的倒退回ASP