您的位置:首页精文荟萃软件资讯 → 实现页面重定向

实现页面重定向

时间:2004/10/7 18:25:00来源:本站整理作者:蓝点我要评论(0)

 
实现页面重定向


用 Redirect 方法可将浏览器重定向到另一个 URL,而不是将内容发送给用户。例如,如果您想确认用户是否已从主页进入了您的应用程序,以便能收到一个客户 ID,则可以检验他们是否有客户 ID 号;如果没有,就可以将其重定向到主页。以下就是具体例子:





<%If Session("CustomerID") = 0 Then Response.Redirect "homepage.asp" End If%>

  除非缓冲区已经打开,否则,在任何内容或标题返回给浏览器之前,您必须重定向浏览器。将 Response.Redirect 语句放在页的顶部和<HTML> 标记之前可确保没有任何内容返回给浏览器。如果在返回给浏览器的内容或标题后使用 Response.Redirect,将看到一个错误信息。

  如果在页的中间使用 Response.Redirect,请将其与 Response.Buffer 属性一起使用,这是因为在默认情况下,Web 服务器返回 HTML 和在处理 ASP 页时的脚本处理结果。但是,您可以设置 Response 对象的 Buffer 属性以便在向用户发送任何内容之前,先处理页上的所有的服务器脚本命令。

  可以使用缓冲技术来确定在页处理过程中的某个点,而您并不想将该点之前的内容发送给用户。也可以用 Response 对象的 Redirect 方法将用户重定向到另一页,或者用 Response 对象的 Clear 方法清除缓冲区并将不同的内容发送给用户。下面的例子使用了以上两种方法。

  例子一:





<% '下一句程序必须放在程序在<HTML> 标识符前Response.Buffer = True %><html><body>...
例子二:
<%If Request ("FName") = "" Then Response.Clear Response.Redirect ".. /test.html"Else Response.Write Request("FName")End If%></body></html>

  以上就是Response对象的在程序中经常用到的功能。


  Server对象有那些属性方法以及怎样使用

  Server对象提供对服务器访问的方法和属性。其中大多数方法和属性是作为实用程序的功能提供的。
Server对象有哪些基本属性和方法?

  (1).语法:
   Server.property|method
  (2).属性(property)
   Server对象只有一个属性:ScriptTimeout 程序能够运行的最大时间
  (3).方法(Methods)
   CreateObject 建立一个对象实例.
   Execute 执行一个asp文件
   GetLastError 返回一个错误代码
   HTMLEncode 对指定的HTML代码进行转换.
   MapPath 将一个相对路径转化为一个绝对路径.
   Transfer 将当前的所有状态信息发送给另一个asp文件
URLEncode 以URL形式转化指定的代码,包括空格

  如何使用Server对象的属性和方法?

  (1).CreateObject

   语法
   Server.CreateObject ( progID )
   参数
    progID
    指定要创建的组件名称,格式如下: [Vendor.]Component[.Version]。
   要点:
    一般来说,用由Server.CreateObject方法创建的对象的生存期在该页面范围内。这就说,当这页的asp程序执行完后,这个对象会自动地消失。

  为了创建一个拥有Session或Application范围的对象,你就要在Global.asa文件中使用CreateObject方法

  (2).Execute

  Execute 方法是呼叫一个ASP文件并且执行它,像被呼叫的ASP文件存在这个ASP文件中一样。这很与许多语言中的类的调用相似。
  语法
    Server.Execute ( Path )
  参数
    Path
  指定将执行的那个asp文件的路径。如果它是一个相对路径,那么它必须是一个和这个ASP应用程序相同的地方(目录)的文件。

  讲解
  Server.Execute 方法提供了一个将复杂ASP应用程序分化为小块单位来执行的方法。通过这种方法,你能够建一个ASP图书馆,你能够随便在你需要时调用你图书馆中的ASP文件。

  当IIS根据指定的ASP文件路径执行完这个ASP文件之后,就会自动返回以前的ASP文件。这个刚刚执行完的ASP文件有可能改变了HTTP head。但是和其它的ASP文件一样,当程序试图改变http head时,就会报错!

  这个path参数可以包括一个询问信息。

  如果在被呼叫和呼叫的ASP文件中都含有相同的子函数,那么这些子函数只在本ASP文件中起作用。举个例子,如果在下面的ASP1和ASP2两个文件中都含有放弃程序的子函数。首先ASP1呼叫ASP2,那么ASP2中的的OnTransactionAbort开始执行,当ASP2执行完毕,ASP1中的OnTransactionAbort才开始执行。





  ASP1:
<%@ Transaction = Required %><%  Server.Execute ("Page22.asp")  Sub OnTransactionAbort Sub OnTransactionCommit%>
  Asp2.asp:
< %@ Transaction = Required Sub OnTransactionAbort Sub OnTransactionCommit%>
 例子:
ASP1
<% Response.Write ( "I am going to execute ASP2 " )Server.Execute ( "/myasps/asp2.asp" )%>
ASP2
<% Response.Write ( "Here I am" ) %>

  (3).GetLastError方法

  GetLastError 方法返回一个ASPError Object 来描述一个错误信息.这个方法只适用于在asp文件发送任何内容给用户机之前.
  语法
   Server.GetLastError ( )
  要点:
  如果一个500;100 用户错误已经被定义在一个asp应用程序中,它是指的一个以.asp为后缀的文件。这种情况下,在这个程序运行时当一个错误发生时,服务器就会自动的以Server.Transfer这种方式传送到这个正在执行的ASP页面。ASP应用程序就会将有效的处理这个错误。另外,这个ASPError Object一定要有效,这样你就能够看到服务器提供给你的错误信息来改这个文件了!

  一般的Web Site 都是根据文件\iishelp\common\500-100.asp来构造的。你能够用它来执行一个asp错误,当然你能够自己定义了!。如果你想改变为另外一个asp文件的来执行这些用户错误。那么你可以用IIS中的snap-in。

  注意:当IIS发现了一个asp文件或者global.asa文件中的一个错误,那么一个500;100用户错误产生。以下的程序将不能执行!

  下面的三个例子证明不同的错误会产生的用户错误。三个错误是:

   编译错误
   运行错误
   逻辑错误

  第一个例子证明了一个编译错误,就是当IIS试图包含一个文件时产生的。这个错误会产生是因为在这个包含文件中没有定义所需的参数。第二个例子显示的是一个运行错误,这个程序中断的原因是程序中没有"next"。第三个例子显示的是一个逻辑错误,因为这个程序试图除以一个0。 

  例子01:





< %  response.write "hello"%>
例子02:
< %  dim I  for I = 1 to 1  nxt%>
例子03:
<%  dim i , j  dim sum  sum = 0  j = 0  for i = 1 to 10   sum = sum+1  next  sum = sum/j%>

  (4).HTMLEncode方法:

  HTMLEncode方法对指定的字符串进行HTML编码。
  语法
   Server.HTMLEncode ( string )
  参数
   string 要进行编码的字符
  例子
   下面的程序:
  <%= Server.HTMLEncode ( "The paragraph tag: " ) %>
  输出为:
  The paragraph tag:
  注意 程序执行后在浏览器中看到的是:
  The paragraph tag:

  但是如果你用"查看源文件"看一下的话,源代码就不是了。

  (5).MapPath

  MapPath 方法将相对路径转化为服务器上的物理路径
  语法
  Server.MapPath ( Path )
  参数
  Path

  这个路径是以"/"或"\"开头的路径,如果这个路径中没有"\",那么MapPath方法就会返回以当前目录为基础的路径。

  讲解
  MapPath 方法不能检查路径在这个服务器下是否存在。因为 MapPath 转化路径时是不管这个路径是否在这个服务器下存在的。

  你能够用它来将一个相对路径转化为一个物理路径,然后再在这个路径下进行各种操作。

  在下面的例子中,data.txt文件存在 C:\Inetpub\Wwwroot\Script 目录中,而一个test.asp 文件包括下面的代码。C:\Inetpub\Wwwroot 是该服务器的主目录 。

  下面的例子中,首先用环境变量"PATH_INFO"获得当前文件的物理路径。

  下面是Script 代码:





  <%= server.mappath ( Request.ServerVariables ( "PATH_INFO" ) ) %>
  显示为:
c:\inetpub\wwwroot\script\test.asp
  因为下面的例子中路径参数没有以"/"开头,所以它是以当前目录转化的,asp文件是放在C:\Inetpub\Wwwroot\Script中的.以下是 scripts的内容: 
 <%= server.mappath ( " data.txt " ) %> <%= server.mappath ( " script/data.txt " ) %>
  显示为:
  c:\inetpub\wwwroot\script\data.txt  c:\inetpub\wwwroot\script\script\data.txt
  以下的两个例子是以"\"开头的.以下是scripts的内容:
  <%= server.mappath ( " \script " ) %>
  显示为:
  c:\inetpub\wwwroot\script\data.txt  c:\inetpub\wwwroot\script
  直接用"/"或"\"就会得到服务器的主目录:
  <%= server.mappath ( " \ " ) %>
  显示为:
  c:\inetpub\wwwroot

(6).Transfer方法:

  transfer 方法会把一个正在执行的asp文件的所有信息传给另外一人asp文件。
  语法
   Server.Transfer ( path )
  参数
  Path
  将要接收信息的asp文件的位置。
  要点:
  当你调用Server.Transfer时,所有内建对象的状态信息都会包含在这次传送之中。这就是说,所有在保存在Session或Application中的信息都会被传送,而且所有当前请求的信息都会被接收信息的asp文件所接受。

  下面的例子示范了从一个asp文件传送到另一个asp文件例子!





  ASP1
<% Dim sessvar1 Response.Write Session.SessionID Response.Write ( " " ) Response.Write ( "I am going to ASP2 " ) Server.Transfer ( "/Myasps/ASP2.asp" )%>
  ASP2
<% Response.Write Session.SessionID %>

  (7).URLEncode方法:

  URLEncode 方法可以将指定字符串进行URL编码。
  语法
   Server.URLEncode ( string )
  参数
   string 指定要转化的字符串
  下面是代码:
  <% Respones.Write ( Server.URLEncode ( http://www.microsoft.com ) ) %>
  显示为:
  http%3A%2F%2Fwww%2Emicrosoft%2Ecom

  (8).属性:ScriptTimeout

  ScriptTimeout 属性规定了程序的最大运行时间。
  语法
   Server.ScriptTimeout = NumSeconds
  参数
   NumSeconds
   规定了程序的最大的运行时间(以秒计算)。缺省值是90秒
  Remarks

   Web sertvic 或 Web server上缺省的Scritpt Timeout的值能通过ASPScriptTimeOUT属性来设置。在程序中,ScriptTimeout属性的值不能小于这个缺省值。举个例子吧,如果NumSeconds我们设置为10秒,而缺省值为90秒,那么程序就会中止在90秒以后,而不是10秒以后的。同样,如果我们设置ScriptTimeout的值为100秒,那么,程序就会在100秒之后中止,而不是90秒。

  下面的例了中程序将被设置为100秒后自动中止。

  <% Server.ScriptTimeout = 100 %>
  下面的例子中将重新得到ScriptTimeout的值,然后把它存在Timout变量中
  <% TimeOut = Server.ScriptTimeout %>

  总结:

  通过以上结合例子的介绍,对server对象的如何使用有了一个比较具体的了解。但要灵活运用,只有不断练习。

相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 360快剪辑怎么使用 36金山词霸如何屏幕取词百度收购PPS已敲定!3

最新文章 微信3.6.0测试版更新了微信支付漏洞会造成哪 360快剪辑怎么使用 360快剪辑软件使用方法介酷骑单车是什么 酷骑单车有什么用Apple pay与支付宝有什么区别 Apple pay与贝贝特卖是正品吗 贝贝特卖网可靠吗

人气排行 xp系统停止服务怎么办?xp系统升级win7系统方电脑闹钟怎么设置 win7电脑闹钟怎么设置office2013安装教程图解:手把手教你安装与qq影音闪退怎么办 QQ影音闪退解决方法VeryCD镜像网站逐个数,电驴资料库全集同步推是什么?同步推使用方法介绍QQ2012什么时候出 最新版下载EDiary——一款好用的电子日记本