日期:2013-11-29  浏览次数:20860 次

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 20document.write("<hr width="&int(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 5000response.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 标记中所使用的字符,就会遇到问题。这是因为,当浏览器读到这样的字符串时,会试图进行解释。

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


空格的代码是: <br>你会发现上面的代码都被执行了。
  所以,为了要让一些特殊代码能够显示,就运用该方法了。

  2.htmlencode.asp


<%Response.write ("这是没有采用 HTMLEncode 方法的测试。<br> 这里就另起一行,说明代码被执行。 ")%><hr><%Response.write Server.HtmlEncode("这是对 HTMLEncode 方法的测试。<br> 这里应该不会另起一行,也就_是代码没有被执行了。 ")%>
  这在许多网站,论坛都存在的一些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")%><form action="<%=filepath%>">你可以输入“<hr>”等代码看看:<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=whatif not isnull(what) thentihuan=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=repl