ASP3.0中的流控制能力

asp3|控制

    随着PHP4.0和JSP技术的推出以及IIS中不断出现的重大的安全问题,MicroSoft的ASP的市场仿佛是变的狭窄了,但是MicroSoft是不会轻言放弃的,于是在ASP2.0的基础上推出了ASP3.0,增加了一些新的功能:新的流控制能力、Data Shaping技术(请参考:http://www.aspcn.com/showarticle.asp?id=28)、无脚本 ASP 、更多的组件选择、xml的支持、脚本组件、ASP脚本代码的加密技术等等。其实笔者认为没有多大的改变、或者我对于ASP3.0了解的还是太少了(事实上我认为微软可能放弃了ASP,而是把目光转向了"ASP+",ASP+目前还处于测试阶段,但是笔者从一些国外站点的介绍来看,嘿嘿,我们的下一个作用于Win平台上的东西可能就是ASP+了,所以ASP3.0才没有多大的改变),不过话说回来,对于那些使用Win系统平台的用户,我还是建议大家使用ASP,所以在下面给大家介绍了"ASP3.0中的流控制能力"。

  ASP3.0中的流控制技术其实是指程序流,说的通俗一点就是程序的流程,ASP3.0中有了两种新的流控制方法:"Server.Transfer"和"Server.Execute",我将就这两种方法中的一种粗略的介绍给大家,为了具体的显示其功能,我给大家对比了Response.redirect同Server.Transfer的运用!
   一般会使用response.redirect这条语句进行地址转向,ASP3.0提供了一种新的方法给我们,这种方法更加高效。让我们先来看看response.redirect和Server.Transfer分别是如何Run的!

  response.redirect其实上是当服务器碰到这条语句时发送一条指令(包含新的地址)给浏览器,然后让浏览器去发送http请求,请求response.redirect后面的那个新的http地址,流程如下:
   浏览器ASP文件请求->服务器执行->遇到response.redirect语句->服务器发送response.redirect后面的地址给客户机端的浏览器->浏览器请求执行新的地址(服务器返回的Response.Redirect后面的地址)这就是一个小小的Response.Redirect的全部过程,不看不知道,一看吓一条!它有这么多的过程,真恐怖... ...,而ASP3.0中的Server.Transfer语句当接受地址后是直接转向后面的地址,流程如下:
   浏览器ASP文件请求->服务器执行->遇到Server.Transfer语句->服务器转向新的文件。
这样就少了一个流程了!也缩短了服务器->客户机->服务器互相访问的时间!但是值得提醒你注意的一点的是Server.transfer中带的地址最好是html文件或asp文件,不要是第三方加载的东西,比如说PHP,如果那样的话,程序是不能正常执行的,因为转向的文件被直接送给ASP的引擎解析了(唉,微软的东西教人如何说呢?不知道这点是没有考虑到,还是微软的霸气),你将得不到结果的!在下面的程序中,我们将像你展示这点
让我们看看下面的代码:
(文件:Response.asp:)
<!-- 代码开始 -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<META NAME="Author" CONTENT="蒲俊杰">
<META NAME="Keywords" CONTENT="ASP,www.aspcn.com">
<title>Response测试</title>
</head>
<body>
<%Response.Redirect "test.php"%>
</body>
</html>
<!-- 代码结束-->
test.php文件的代码如下:
<!-- 代码开始 -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<META NAME="Author" CONTENT="蒲俊杰">
<META NAME="Keywords" CONTENT="ASP,PHP,www.aspcn.com">
<title>Response测试</title>
</head>
<body>
<? echo "<center>这是一个测试,你好呀!欢迎你访问我们的网站<a href=http://www.aspcn.com>www.aspcn.com</a></center>" ; ?>
</body>
</html>
<!-- 代码结束-->
   好了,我们测试一下上面的代码,看到结果了吗?再让我们来看看Server.Transfer的运用语句,代码如下:
Server.asp(其实直接套用Response.asp就可以了):
<!-- 代码开始 -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<META NAME="Author" CONTENT="蒲俊杰">
<META NAME="Keywords" CONTENT="ASP,www.aspcn.com">
<title>Response测试</title>
</head>
<body>
<%Server.Transfer "test.php"%><!-- 注意这条语句 -->
</body>
</html>
<!-- 代码结束-->
   执行一下Server.asp!咦,怪了,什么都没有吗!但是你看看被IE解释后的代码,代码如下(注意千万不要被我下面的使用在html中的注释语句搞糊涂了):
"###################################################(代码开始)
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<META NAME="Author" CONTENT="蒲俊杰">
<META NAME="Keywords" CONTENT="ASP,www.aspcn.com">
<title>Response测试</title>
</head>
<body>
<!-- 代码开始 -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<META NAME="Author" CONTENT="蒲俊杰">
<META NAME="Keywords" CONTENT="ASP,www.aspcn.com">
<title>Response测试</title>
</head>
<body>
<? echo "<center>这是一个测试,你好呀!欢迎你访问我们的网站<a href=http://www.aspcn.com>www.aspcn.com</a></center>" ; ?><!-- 注意这条PHP语句被看到了 -->
</body>
</html>
<!-- 代码结束--><!-- 注意这条语句 -->
</body>
</html>
"###################################################(代码结束)
   test.php文件被当作一个文本文件include进来了,但是如果我们把原来的Server.asp文件中的Server.Transfer "test.php"换成 Server.Transfer "Response.asp"在Try一下(这样做,其实是让你了解ASP的引擎对于Server.Transfer的具体的解析情况),看看结果?是不是同我们直接运行Response.asp的结果一样???
   我不知道,你现在对于Server.Transfer的用法糊涂没有?我都有一点糊涂了!但是不要忘了我写这篇东西的关键:Server.Transfer比Response.Redirect好,因为前者少了一个流程,加快了速度的,节约了时间,后者我就不说了,只是提醒你一点的就是Server.Transfer到底该用在什么条件下(前面很清楚了,我不多说了,再说我也就糊涂了,你多Try几下就明白了)

时间: 2024-09-11 01:23:37

ASP3.0中的流控制能力的相关文章

ASP3.0中的流控制能力一[转]

asp3|控制 随着PHP4.0和JSP技术的推出以及IIS中不断出现的重大的安全问题,MicroSoft的ASP的市场仿佛是变的狭窄了,但是MicroSoft是不会轻言放弃的,于是在ASP2.0的基础上推出了ASP3.0,增加了一些新的功能:新的流控制能力.Data Shaping技术(请参考:http://www.aspcn.com/showarticle.asp?id=28).无脚本 ASP .更多的组件选择.xml的支持.脚本组件.ASP脚本代码的加密技术等等.其实笔者认为没有多大的改变

ASP3.0中的流控制能力(1)

asp3|控制 ASP3.0中的流控制能力 2000-11-20· xuankong·yesky 随着PHP4.0和JSP技术的推出以及IIS中不断出现的重大的安全问题,MicroSoft的ASP的市场仿佛是变的狭窄了,但是MicroSoft是不会轻言放弃的,于是在ASP2.0的基础上推出了ASP3.0,增加了一些新的功能:新的流控制能力.Data Shaping技术(请参考:http://www.aspcn.com/showarticle.asp?id=28).无脚本 ASP .更多的组件选择

ASP3.0中的流控制能力(2)

asp3|控制 这样就少了一个流程了!也缩短了服务器->客户机->服务器互相访问的时间!但是值得提醒你注意的一点的是Server.transfer中带的地址最好是html文件或asp文件,不要是第三方加载的东西,比如说PHP,如果那样的话,程序是不能正常执行的,因为转向的文件被直接送给ASP的引擎解析了(唉,微软的东西教人如何说呢?不知道这点是没有考虑到,还是微软的霸气),你将得不到结果的!在下面的程序中,我们将像你展示这点 让我们看看下面的代码: (文件:Response.asp:) <

ASP3.0中的流控制能力(3)

asp3|控制 "###################################################(代码开始) <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <META NAME="Author" CONTENT="蒲俊杰"> &

精品:Asp3.0中email有效性验证

asp3 dim emaildim statusdim emaildatadim LicenseKey licensekey = 0 if Request.Form.Count > 0 then        email = Request.Form("email")              Dim oXMLHTTP                  Set oXMLHTTP = server.CreateObject("Msxml2.ServerXMLHTTP&qu

在ASP.NET 2.0中建立站点导航层次(1)

站点导航提供程序--ASP.NET 2.0中的站点导航提供程序暴露了应用程序中的页面的导航信息,它允许你单独地定义站点的结构,而不用考虑页面的实际物理布局.默认的站点导航提供程序是基于XML的,但是你也可以通过编写自定义的提供程序,从任何后端位置暴露这些信息. 站点导航API--站点导航API用于在应用程序的代码中访问站点导航信息,它摘录了导航信息存储的细节.你可以使用API来编程访问应用程序的导航节点. 导航控件--导航控件为页面之间的导航提供了通用的UI,例如树视图.菜单和breadcrum

Java 理论与实践: JDK 5.0 中更灵活、更具可伸缩性的锁定机制

伸缩 内容: synchronized 快速回顾 对 synchronized 的改进 比较 ReentrantLock 和 synchronized 的可伸缩性 条件变量 这不公平 结束语 参考资料 关于作者 对本文的评价 相关内容: Java 理论与实践 系列 Synchronization is not the enemy Reducing contention IBM developer kits for the Java platform (downloads) 订阅: develop

ASP.NET 2.0中发送电子邮件剖析之一

asp.net 一.简介 如今,电子邮件已经成为一种无所不在.异步通知和分布式的消息系统.存在许多web开发场所:其中,服务器端代码都需要生成一个电子邮件并且把它发送给指定的接收者.该电子邮件可以被发送给网点中的一些用户,通知他们有关于他们的新建用户帐户,提醒他们忘记的口令,或以邮件形式提交给他们一个清单.当然,这也可以是针对web开发者或站点管理员,提供给他们有关一个刚刚公开的未处理的异常或用户回馈的消息. 幸好,ASP.NET使得发送电子邮件非常轻松..NET框架版本1.x在System.W

在ASP.NET 2.0中使用样式、主题和皮肤

asp.net ASP.NET 2.0的主题和皮肤特性使你能够把样式和布局信息存放到一组独立的文件中,总称为主题(Theme).接下来我们可以把这个主题应用到任何站点,用于改变该站点内的页面和控件的外观和感觉.通过改变主题的内容,而不用改变站点的单个页面,就可以轻易地改变站点的样式.主题也可以在开发者之间共享. ASP.NET包含了大量的用于定制应用程序的页面和控件的外观和感觉的特性.控件支持使用Style(样式)对象模型来设置格式属性(例如字体.边框.背景和前景颜色.宽度.高度等等).控件也支