飘飘悠悠 发表于 2015-1-16 22:31:52

ASP教程之WINDOWS 2000搭dASP3.0和IIS5.0

实现规模效益。与传统的用户拥有硬件软件所有权和使用权以及传统的应用服务商提供一对一的服务模式不同,ASP拥有应用系统所有权,用户拥有使用权,应用系统集中放在ASP的数据中心中,集中管理,分散使用,以一对多的租赁的形式为众多用户提供有品质保证的应用技术服务,实现规模效益。信任年夜部分的人今朝所用的ASP版本都是搭d在IIS3.0或IIS4.0中的ASP2.0,伺服器平台也多是NT4.0,S著WINDOWS2000即⒃诙率咛世,由於之前S多sI媒w都曾н^有PWINDOWS2000在伺服器功能的U充和各版本(伺服器版本,人用舭姹....)的介,以是人人都刻不容缓的想晓得WINDOWS2000究竟多了哪些年夜的功效,身NT伺服器利用者的我然也不成不知究竟微在@方面改良了几?不^由於本版面次要是在ASP的,以是P者⑨Υ钶d在WINDOWS2000中的ASP3.0和IIS5.0c之前IIS3.0或IIS4.0中的ASP2.0有增添了哪些元件大概是U充的傩耘c办法碚f明,w碚f,ASP20.cASP3.0K]有S多的分歧,比^惹人注重的是新增了伺服器物件办法(METHOD)---SERVER.EXECUTE和SERVER.TRANSFER和一新增添的物件--ASPERROR物件。

SERVER.TRANSFER办法

以往ASP2.0中把持W之g的鬟f年夜部分都是靠Response.Redirect硗瓿,可是常人大概不缘Response.Redirect在蒙碚f是相愚笨的,在ASPResponse.Redirectr是先⒁息鬟f至客舳说g[器,告诉客舳说g[器漭d进一新的W址,客舳g[器吸收到@P息之後再回饕_J新W址息回伺服器端,然後伺服器端再⒖舳g[器虻叫碌木W址,在W路兴旺l展的明天,@拥淖龇荼W路的梗塞情况砀蟮男n,而@也是利用者cW站办理者所不缝兑到的,榱巳〈Response.Redirect@笨办法,ASP3.0到场了一新的伺服器办法--SERVER.TRANSFER,把Response.Redirect中客舳伺c伺服器真个贤ㄈ哭D移到伺服器上,一切的沓绦蛉拷挥伤欧绦,然啦!!在Z法c玫挠^念上cResponse.RedirectKo太年夜的分e,在WcW中鬟fYr,一切的r域岛贸淌阶刀⒈3植蛔,看看上面的f明:

Z法
SERVER.TRANSFER(PATH)

PATH所定x的是⒖刂噢D移到的目标W之W址,跟Response.Redirect後面所接的

涤挟曲同工之妙,e例碚f,

ASP1.asp以下:

<HTML>
<BODY>
<%
Response.WriteSession.SessionID

Response.Write("<BR>")

Response.Write("我要到下一W往!!<BR>")

Server.Transfer("ASP2.asp")
%>

ASP2.asp以下
<HTML>
<BODY>
<%

Response.WriteSession.SessionID
%>

ASP1.asp绦薪Y果以下

一SessionID
我要到下一W往!!
同拥SessionID

很明@的能够看出Response.RedirectcSERVER.TRANSFER的分歧了吧!!

SERVER.EXECUTE办法

SERVER.EXECUTE跟SERVER.TRANSFER不异的是都是在M行Script绦谐绦虻霓D移,独一分歧的是SERVER.TRANSFER最後⒖刂嘟唤o被呼唤的Scriptn案,而SERVER.EXECUTE最後⒖刂噢D移o被呼唤者自己,也就是f绦SERVER.EXECUTE的Scriptn案⒈缓艚械Scriptn案做本人自己的一部分,在^念上碚f,cInclude的做法是一拥,cS多高AZ言呼唤副程式的做法也不异,基础上伺服器端允SSERVER.EXECUTE修正Http祟},可是假如被绦械n案企D在魉陀息至客舳g[器之後修正Http祟}就l生已HTTP祟}进用舳g[器。θ魏HTTP的祟}所做的修正需要在进热葜暗腻e`。看看上面的例:
ASP1
<HTML>
<BODY>
<%Response.Write("你在看我?<BR>")
Server.Execute("asp2.asp")
%>
</BODY>
</HTML>
ASP2
<HTML>
<BODY>
<%Response.Write("你能够再近一c。")%>
</BODY>
</HTML>
ASP1.asp绦薪Y果

你在看我?
你能够再近一c。

看完了@新增添的伺服器物件傩灾,接下碜我看看新增添的ASP冉ㄔ--ASPERROR元件,@是ASP3.0所供应的一全新的元件,他W站办理者能完整掌控因ASP所a生的e`,@是前版本所o法做到的,在前版本中要捕获因ASP所l生的e`是不成能的,多只能用VBScript的OnErrorResumeNext聿蹲降揭Script所l生的e`,任何COM或ASP所l生的e`都o法捕获,S著ASP3.0的到,@些}都⒂卸狻

榱艘褂ASPERROR物件你必褂IIS的Httpe`把持,不缘么蠹疫M我W站之後有]有lF,你在www.pc-net.com.tw/W址後y打一些字然後再按Enter你lFW址不存在r霈F以下的面:

@就叫做自定e`面,人人晓得@是怎样做到的?打_NT的IIS伺服器办理T之後,在站台名Q之上cx滑鼠右I,x热(最上面的x)你能够看到看看上面的面(由於P者的事情平台是Window98)以是只好藉由y平台(英文版的NT榇蠹易鲆f明)。

你能够看到S多的把持x,x裼疑辖堑CustomErrors(自定e`),然後x取404@e`,你吹皆热莶糠幸路的形貌C:WINNT|helpcommon404b.htm
@n案安排的热菥褪窃诿枋霎所查的W址不存在rl生的e`息,404b.htm的原始n以下:

404b.htm

<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML3.2Final//EN">
<html>

<head>
<style>
a:link{font:9pt/12pt新明w;color:red}
a:visited{font:9pt/12pt新明w;color:#4e4e4e}
</style>
<metaHTTP-EQUIV="Content-Type"Content="text-html;charset=big5">
<title>HTTP404找不到</title>
</head>
<script>

functionHomepage(){
//inrealbits,urlsgetreturnedtoourscriptlikethis:
//res://shdocvw.dll/http_404.htm#http://www.DocURL.com/bar.htm

//FortestinguseDocURL="res://shdocvw.dll/http_404.htm#https://www.microsoft.com/bar.htm"
DocURL=document.location.href;

//thisiswherethehttporhttpswillbe,asfoundbysearchingfor://butskippingtheres://
protocolIndex=DocURL.indexOf("://",4);

//thisfindstheendingslashforthedomainserver
serverIndex=DocURL.indexOf("/",protocolIndex+3);

//forthehref,weneedavalidURLtothedomain.Wesearchforthe#symboltofindthebeginning
//ofthetrueURL,andadd1toskipit-thisistheBeginURLvalue.WeuseserverIndexastheendmarker.
//urlresult=DocURL.substring(protocolIndex-4,serverIndex);
BeginURL=DocURL.indexOf("#",1)+1;
if(protocolIndex-BeginURL>7)
urlresult=""

urlresult=DocURL.substring(BeginURL,serverIndex);

//fordisplay,weneedtoskipafterhttp://,andgotothenextslash
displayresult=DocURL.substring(protocolIndex+3,serverIndex);

//Securityprecaution:mustfilterout"urlResult"and"displayresult"
forbiddenChars=newRegExp("["]","g");//Globalsearch/replace
urlresult=urlresult.replace(forbiddenChars,"");
displayresult=displayresult.replace(forbiddenChars,"");

document.write(<Atarget=_topHREF="+urlresult+">+displayresult+"</a>");

}

</script>

<bodybgcolor="white">
<objectid=saOCCLASSID=clsid:B45FF030-4447-11D2-85DE-00C04FA35C89HEIGHT=0width=0></object>

<tablewidth="400"cellpadding="3"cellspacing="5">
<tr>
<tdid="tableProps"valign="top"align="left"></td>
<tdid="tableProps2"align="left"valign="middle"width="360"><h1id="errortype"
style="COLOR:black;FONT:12pt/15pt新明w"><spanid="errorText"><b>找不到W</b></span></h1>
</td>
</tr>
<tr>
<tdid="tablePropsWidth"width="400"colspan="2"><font
style="COLOR:black;FONT:9pt/12pt新明w">查的W大概已移除、改名Q大概ro法利用。</font></td>
</tr>
<tr>
<tdid="tablePropsWidth2"width="400"colspan="2"><fontid="LID1"
style="COLOR:black;FONT:9pt/12pt新明w"><hrcolor="#C0C0C0"noshade>
<pid="LID2">L以下:</p><ul>
<liid="list1">假如在W址列进W址,_定未拼e任何Y料。<br>
</li>
<liid="list2">_<script>Homepage();</script>首,然後查您想讨取之Y的BY。
</li>
<liid="list3">按<ahref="javascript:history.back(1)">[上一]</a>按o,移到别的BY。</li>
<liID="list4">按一下<ahref="">[搜]</a>ふInternetY。</li>
</ul>
<p><br>
</p>
<h2id="ietext"style="font:9pt/12pt新明w;color:black">HTTP404-找不到n案<br>
InternetExplorer<BR>
</h2>
</font></td>

</tr>
</table>
</body>
</html>

一样平常未利用自定e`之前,你所看到的面以下D所示

至於{色那一段W址超BY的部分是透^404b.htm中Homepage()函斫馕鏊@得的,要利用本人所定x的e`面有煞N体例能够完成,第一N是间接⒆约核龅腻e`面存到C:WINNThelpcommon404b.htm得n名要取一,第二是㈠e`面Υ娴侥阆氪娣诺哪夸之下,然後间接修正站台热葜凶远ㄥe`x中的e`面寄存路,以下D所示:

个中的http://www.yourserver.com/404.htm就是以URL榛实拇娣怕。

在IIS4.0中我只能虿蹲降404的e`息,可是IIS5.0s能使用ASP程式捕获伺服器贸淌500和100e`(在g或绦ASP程式r所l生的e`)的息,K在捕获到息之後绦心阆绦械ASP程式,比如⑹褂谜虻侥W,@拥姆绞阶利用者不用再忍耐一但g[W路r遭受到e`而o所m的窘境,因槭褂谜叨喟氩缘冒l生什N事,假如透^W站办理T告诉利用者利用者X得更N心。
ASPERROR物件怎样利用呢?基础上他必搭配SERVER物件的新办法GetLastError硎褂,因ASPERROR物件是透^Server.GetLastError办法骰劐e`息的。比如f你IIS5.0O定成捕获到伺服器贸淌500或100e`息之後⑹褂谜虻Error.asp,K使用Error.asp砻枋鏊l生的e`,我看看Error.asp在做些什N事。
Error.asp

<%
DimobjLastASPError

创建伺服器物件(获得ASP所a生的最後一e`)

SetobjLastASPError=Server.GetLastError

形貌e`情r
%>

伺服器遭受以下的e`:<BR>
形貌:<%=objLastASPError.Description%><BR>
e`e:<%=objLastASPError.Category%><BR>
l生e`的n案:<%=objLastASPError.File%><BR>
元件e`a:<%=objLastASPError.Number%><BR>

基础上ASPError物件有S多傩,而@些傩酝ㄍǘ际且拷⑺欧魑锛,K以伺服器物件中的GetLastError办法骰劐e`息,我看看ASPError物件有哪些傩:
ASPCODE:骰IIS所a生的e`a

NUMBER:骰COM物件所a生的e`a

SOURCE:骰禺a生e`的那段原始程式

CATEGORY:假如是ASP炔慨a生e`,那骰厥COM是手稿Z言的e`

FILE:骰禺a生e`的ASPn案名Q

LINE:指出是哪一路程式l生e`,骰匦

DESCRIPTION:骰睾短e`息

ASPDESCRIPTION:骰卦e`息

基础上@就是IIS5.0中的ASP3.0和IIS4.0中的ASP2.0所分歧之,然啦,有S多小中央也改了,只是比^不受人注重以是]有出,像IIS4.0中Response.Buffer的AO值是False,若利用者必要再⑵溟_,可是IIS5.0榱颂N效能间接就㈩AO值O定True,奇异,既然能提N效能槭颤NIIS4.0要⑺O定False,打往比吧!!我也不晓得。缺乏可以共同遵循的行业标准,ASP还处在发展初期,大家对它的理解不同,如产品和服务标准,收费标准等,不利于行业的健康发展。

因胸联盟 发表于 2015-1-19 16:12:29

那么,ASP.Net有哪些改进呢?

兰色精灵 发表于 2015-1-25 11:21:42

他的语法和设计思路和VB完全相同,导致很多ASP的书都留一句“相关内容请参考VB的相关教材....”更糟糕的是,相当多的ASP教程混合了Javascript,VBscript等等脚本语言,搞的初学者。

再见西城 发表于 2015-2-2 21:55:03

Application:这个存储服务端的数据,如果不清除,会直到web应用程序结束才清除(例如重启站点)

活着的死人 发表于 2015-2-8 08:05:41

我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。

莫相离 发表于 2015-2-25 02:28:48

以HTML语言整合(HTML负责界面上,ASP则负责功能上)形成一个B/S(浏览器/服务器)模式的网页程序。

小妖女 发表于 2015-3-7 16:03:14

他的语法和设计思路和VB完全相同,导致很多ASP的书都留一句“相关内容请参考VB的相关教材....”更糟糕的是,相当多的ASP教程混合了Javascript,VBscript等等脚本语言,搞的初学者。

精灵巫婆 发表于 2015-3-15 09:34:13

在平时的学习过程中要注意现学现用,注重运用,在掌握了一定的基础知识后,我们可以尝试做一些网页,也许在开始的时候我们可能会遇到很多问题,比如说如何很好的构建基本框架。

山那边是海 发表于 2015-3-21 23:33:19

掌握asp的特性而且一定要知道为什么。
页: [1]
查看完整版本: ASP教程之WINDOWS 2000搭dASP3.0和IIS5.0