首页 电脑学院 黑客教程 网站技术 网页特效 免费论文 公文写作 演讲发言 实用文档 职场指南 时尚生活 情感男女 其他资讯

您的位置:首页-> 网站技术-> ASP技术-> ASP编程入门进阶(七):内置对象Server
ASP编程入门进阶(七):内置对象Server
Server 对象提供对服务器上的方法和属性的访问 , 其中大多数方法和属性是作为实用程序的功能服务。(IIS HELP翻译)
  有了 Server 对象,你就可以在服务器上启动 ActiveX 对象例程,并使用 Active Server 服务提供象 HTML 和 URL 编码这样的函数。

  一、Script.ScriptTimeout

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

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


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

  1.time.asp

<%startime=timer()%>
到下面看执行的时间
<%
for i= 1 to 5000
response.write("
")
next
%>
当然中间还可以添加其它内容。

<%endtime=timer()%>

<%=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 方法的测试。
这里就另起一行,说明代码被执行。 ")%>


<%Response.write Server.HtmlEncode("这是对 HTMLEncode 方法的测试。
这里应该不会另起一行,也就_
是代码没有被执行了。 ")%>
  这在许多网站,论坛都存在的一些BUG,不信你可以到各论坛试试:敲入 就是没有,急死你呢:)当然HtmlEncode只是其中的一个原因,最主要的还是UBB代码的转换。不过关于这点我也已经调试解决了。
  调试地址参看 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")%>

你可以输入“
”等代码看看:

接受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","<")
tihuan=replace(tihuan,"%3D","=")
tihuan=replace(tihuan,"%3E",">")
tihuan=replace(tihuan,"%26","&")
tihuan=replace(tihuan,"空格我不知道,呵呵。哪个告诉我下:)"," ")
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("cnbruce")%>


你可以输入“
”等代码看看:

接受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")%>


Request.ServerVariables("PATH_INFO") : <%=Request.ServerVariables("PATH_INFO")%>


Request.ServerVariables("SCRIPT_NAME") : <%=Request.ServerVariables("SCRIPT_NAME")%>


Request.ServerVariables("URL") : <%=Request.ServerVariables("URL")%>


Request.ServerVariables("PATH_TRANSLATED") : <%=Request.ServerVariables("PATH_TRANSLATED")%>



上面都是通过ServerVariables提取得出的值,下面就来运用mapath把一个虚拟地址转变为实际的物理地址。


Server.MapPath(Request.ServerVariables("URL")) :<%=Server.MapPath(Request.ServerVariables("URL"))%>


或者自己随便写个不存在的路径,同样能够执行


Server.MapPath("cnbruce.asp") : <%=Server.MapPath("cnbruce.asp")%>


再来个“/”的


Server.MapPath("/cnbruce.asp") : <%=Server.MapPath("/cnbruce.asp")%>

Server.MapPath("\cnbruce.asp") : <%=Server.MapPath("\cnbruce.asp")%>


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

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

  有此些了解,对路径的处理应该要好多了,再返回我的站点,看看我对数据库的mappath路径的处理方法,相信又是一个理解层次了。
  数据库的mappath路径的处理方法在:
  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对象学习了下,感觉好象是每个都有用的,重要啊。
  还有,需要说明的,如果您从本处转载,发现和本源件有差错,比如代码  、 < 、 >等等,根本就是被执行了的。都说明您的站点存在着这些问题。





在百度中查找更多ASP编程入门进阶(七):内置对象Server 的内容

职场宝典   职场故事   职场跳槽   职场文化   职场理财   职场充电   情感天地   职场女性   职场礼仪   职场新人
报告总结   述职报告 工作总结 调查报告 工作汇报 计划方案 个人总结 社会实践 规章制度 调研报告 
  实习报告 考察报告 辞职报告 
演讲发言   竞职演说   就职演说   精彩演说   爱国演讲   英语演讲   十七大演讲   安全生产演讲稿   
节日祝福   重阳节 国庆节 教师节 中秋节 情人节 七夕节 劳动节 妇女节 清明节 愚人节 春节 元旦 圣诞节  儿童节  端午节 母亲节 新婚祝福 生日祝福 
讲话致辞   开业开幕   会议主持   庆典致辞   会议发言   党风廉政   党政报告   贺电慰问   婚丧嫁娶   思想宣传
法律常识   基本常识   法律文书   权益常识   劳动保障   婚姻继承   民事诉讼   刑事诉讼   
党建材料   入党申请   思想学习   党性分析   思想汇报   转正申请   民主生活   党委党建   入团申请   申报材料
求职简历   个人简历   求职自荐   求职谋略   面试技巧   求职英语   自我鉴定   英文简历   简历封面
心得体会   心得体会   经验交流   读后感   
时政热点   和谐社会   先进性教育   新农村建设   十七大   八荣八耻   科学发展观   劳动合同法   
人际沟通   社交技巧   社交礼仪   口才技巧   谈话技巧   演讲技巧   
营销技巧   电话销售   网络销售   推销技巧   促销技巧   销售口才   营销手段   销售技巧   谈判技巧   

“ ASP编程入门进阶(七):内置对象Server ”来源于网络,版权归作者所有!勿用于商业用途。

ASP技术

ASP技术
PHP技术
JSP技术
.NET技术
服务器技术
数据库开发
其它类

本类阅读TOP10

·MDAC2.8 下载!
·ASP 编程中 20 个非常有用的例子——适合初学者
·ASP编程入门进阶(七):内置对象Server
·跟我学做树型菜单(四)
·教你1小时里搞定ASP
·IIS6.0的设置
·ASP分页祥解
·常用代码集锦(ASP)
·关于内部服务器500错误的文档
·新手初练:用ASP做一个域名查询系统

广告


关于本站|服务条款|广告服务|客服中心|发布文章|网站留言