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="&int(500+i)&">") next //结束时间 endtime=timer() document.write ("页面执行时间:"&FormatNumber((endtime-startime)*1000,3)&"毫秒") </script> [Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

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

1,time.asp


<%startime=timer()%>
<a href=#bot>到下面看执行的时间</a>
<%
for i= 1 to 5000
response.write("<hr width="&int(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 标记中所使用的字符,就会遇到问题。这是因为,当浏览器读到这样的字符串时,会试图进行解释。

还是看一个程序,我想在页面显示“&nbsp;”这样的代码(附:&nbsp;是空格的代码)
那么当我进行书写的时候你会发现,浏览器已经给我解释了的。
空格的代码是:&nbsp;<br> 你会发现上面的代码都被执行了。 [Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

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

2,htmlencode.asp


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

这在许多网站,论坛都存在的一些BUG,不信你可以到各论坛试试:敲入&nbsp;就是没有,急死你呢:)当然HtmlEncode只是其中的一个原因,最主要的还是UBB代码的转换。不过关于这点我也已经调试解决了。
调试地址参看  http://www.cnbruce.com/juven/showart.asp
当然经典论坛不存在这问题,要不你也不会看到效果了。

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

3,urlencode.asp


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

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

4,vurlencode.asp


<%
function tihuan(what)
tihuan=what
if not isnull(what) then
tihuan=replace(tihuan,"%3C","&lt;")
tihuan=replace(tihuan,"%3D","=")
tihuan=replace(tihuan,"%3E","&gt;")
tihuan=replace(tihuan,"%26","&amp;")
tihuan=replace(tihuan,"%20","&nbsp;")
tihuan=replace(tihuan,"%3B",";")
tihuan=replace(tihuan,"%22","&quot;")
tihuan=replace(tihuan,"%2B","+")
tihuan=replace(tihuan,"%2F","/")
end if
end function
%>

<%filepath=request.servervariables("script_name")%>

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

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

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

四,Server.MapPath
相信看过我写的《DW2ASP系列》的朋友,都卡在这个上了。DW毕竟是入门的好东西,但要系统学ASP编程,对这个就该好好认识了解下。
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("cnbruce.asp") : <%=Server.MapPath("cnbruce.asp")%><p>
再来个“/”的<p>
Server.MapPath("/cnbruce.asp") : <%=Server.MapPath("/cnbruce.asp")%><br>
Server.MapPath("/cnbruce.asp") : <%=Server.MapPath("/cnbruce.asp")%><p>
你会发现物理地址转变到IIS默认根目录下面了。
这就是如6to23之类的站点mappath的问题所在。还是虚拟主机好,即使是根,也还是自己站点的默认存放节点根。

测试我的地址 http://www.cnbruce.com/server.asp
注意测试的地址和根目录下的地址,对应的是同一文件夹(这就是虚拟主机),6to23之类是不会相同的。

有此些了解,对路径的处理应该要好多了,再返回我的站点,看看我对数据库的mappath路径的处理方法,相信又是一个理解层次了。
数据库的mappath路径的处理方法在:
http://www.cnbruce.com/blog/showlog.asp?cat_id=27&log_id=241

五,Server.CreatObject
Server.CreateObject 这个方法恐怕是 ASP 中最为实用,也是最强劲的功能了。它可用于创建已经注册到服务器上的 ActiveX 组件实例。这是一个非常重要的特性,因为通过使用 ActiveX 组件能够使你轻松地扩展 ActiveX 的能力,正是使用了 ActiveX 组件,你可以实现至关重要的功能,譬如数据库连接、文件访问、广告显示和其他 VBScript 不能提供或不能简单地依靠单独使用 ActiveX 所能完成的功能。也正是因为这些组件才使得 ASP 具有了强大的生命力。
呵呵,不过,在我们没有谈及连接数据库之前,这个先空着,“要得好,到临了”:)等我们接触到数据库连接的时候再说不迟。

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

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

  1. ASP编程入门进阶(九):Application

    ASP编程入门进阶(九):Application 日期:2005-1-30 15:07:59 来源:网人帝国 查看:[大 中 小] 作者:cnbruce 热度: 337   在Web应用程序中,当一个 ...

  2. JavaScript-基础入门.0014.JavaScript内置对象

    2019独角兽企业重金招聘Python工程师标准>>> 简单介绍: 说明: 内置对象就是不依赖宿主环境在程序执行之前已经存在的对象,不必显式的实例化内置对象,前面已经介绍了大部分内置 ...

  3. JAVA Web入门之JSP内置对象的解析及使用(超详细必看)

    创作不易 觉得有帮助请点赞关注收藏~~ 概述:由于JSP使用java作为脚本语言 所以JSP具有强大的对象处理能力 并且可以动态创建web页面内容 但java语言在使用一个对象前  需要先实例化这个对 ...

  4. Asp.net 内置对象

    (1)简述ASP.NET内置对象. 答:ASP.NET提供了内置对象有Page.Request.Response.Application.Session.Server.Mail和Cookies.这些对 ...

  5. 不可或缺的ASP.NET内置对象

    文章目录 为什么学习ASP.NET内置对象 一.Request对象 1.属性 2.方法 二.Response对象 1.方法 2.属性 三.Page对象 1.属性 2.事件 四.ViewState对象 ...

  6. Python 零基础入门到实战(一)笔记:内置对象、浅拷贝、深拷贝、计算圆面积、凯撒密码、英文大小写转换、输入国家打印出国家名和首都、输入数字英文输出、统计句子中的字母数量、猜随机数

    Python入门到实战(一) 为什么写这篇文章 Part 1 入门部分 什么是编程语言? Python的优势 目前应用 特点 Part 2 6种内置对象 1 整数.浮点数 2 字符串 3 列表 4 元 ...

  7. ASP内置对象详细介绍

    请求对象-Request 对象是一种复杂的数据类型,是由属性和方法构成的具有特定功能的集合,脚本语言一般都是基于对象的语言,都提供了功能强大的对象,其中有两个最为重要的对象就是Request请求对象和 ...

  8. 5、JavaScript进阶篇②——函数、事件、内置对象

    一.函数 1. 什么是函数 函数的作用,可以写一次代码,然后反复地重用这个代码. 如:我们要完成多组数和的功能. var sum; sum = 3+2; alert(sum);sum=7+8 ; al ...

  9. asp.net内置对象了解

    最近项目用到关于Session的内容,找资料的时间了解到有内置对象这个东西. asp.net的内置对象有: Request: 从浏览器获取信息 Response: 向浏览器输出信息 Applicati ...

  10. ASP.NET内置对象一

    ASP.NET提供了大量的对象类库,在这些类库中包含了许多封装好的内置对象,我们只需要直接使用这些对象的方法和属性,就能简单快速地完成很多的功能.Request对象.Response对象和Serve对 ...

最新文章

  1. Technology Document Guide of TensorRT
  2. 一种注册表沙箱的思路、实现——Hook Nt函数
  3. excel单元格加引号及逗号,转换为sql需要的样式
  4. 先搞清楚了任务究竟是什么再说
  5. WPF:Graphics图表--EncodingAndersonDecoding图像编解码(2)
  6. MySQL学习(四)查询
  7. 怎么还不见2005的中文版出来的?
  8. linux查看系统内存和cpu使用率,查看Linux系统内存、CPU、磁盘使用率
  9. LeetCode 12 整数转罗马数字
  10. iphonex黑屏开不了机_手机突然黑屏开不了机充电没反应怎么办?别急,这样就可以解决...
  11. 160826、浏览器渲染页面过程描述,DOM编程技巧以及重排和重绘
  12. php生成网页缩略图接口,php生成网站缩略图
  13. 程式CSCMSV4黑色炫酷DJ音乐门户模板 音乐网源码
  14. laravel order 按时间升序_Cache and Related Part3: Coherence amp; Order
  15. C++中模块(DLL)对外暴露接口的几种方式
  16. 国内python镜像源记录
  17. 说出来你可能不信,内核这家伙在内存的使用上给自己开了个小灶!
  18. python做数据分析的包_Python数据分析包的学习
  19. 动态规划——Palindrome Partitioning II
  20. R 实战学生成绩描述分析

热门文章

  1. win下文件共享多种方式
  2. [CTF]RAR加密原理
  3. Java Se 、JavaEE、JavaME区别
  4. 二元一次方程用计算机怎么解,二元一次方程的解法
  5. 计算两经纬度坐标间的距离
  6. PL/SQL相关的数据字典
  7. 乐凯PMP2106项目管理考试资料大全,包含四套模拟试卷
  8. 2021教资高中信息技术笔记知识点48页pdf
  9. 高中计算机编程内容,高中信息技术课程标准
  10. 车标&车辆品牌检测Python[完整源码&视频安装教程&车标数据集&完整文档]