简单生活 发表于 2015-1-16 23:34:29

ASP网页编程之利用Server.Transfer对URL举行埋没和...

只要你想学,就没什么优缺点,上面那位大哥已经把网上的评论说了,但我认为想学哪个都一样,不然它就不可能在当今时代数字艺术方面存活到今天server1成绩提出

常常看到一些网站大概Web使用体系,在扫瞄器看来,他们只接纳一个页面,一切的页面地点都是经由过程这个页面的参数链接失掉的。比方:

http://abc.com/default.asp?pg=AdminPage&command=View

http://abc.com/default.asp?pg=ShowPage&command=List

等等诸云云类的器材。之前我没有细心想过该怎样完成,大概页面不同不年夜用几个分歧的Sub来做就好了;但是细心看了看两个地点,两个页面的不同太年夜了;假如这一个页面包括这么多的Sub,这对程序员而言几乎是一种培植,并且美工基本没法加入。我和一个网友会商了好久,他提出用ISAPI,我以为很可怕。



厥后想了想,记起来转向的几种办法:Server.Transfer,Response.Redirect,Server.Execute就不算了。Response.Redirect是IIS明白标明不太用的(可是我之前做ASP的时分用得最多)。厥后看看Server.Transfer,越看越以为可以利用的模样。IIS的匡助中举行了以下论述:



WhenyoucallServer.Transfer,thestateinformationforallthebuilt-inobjectswillbeincludedinthetransfer.Thismeansthatanyvariablesorobjectsthathavebeenassignedavalueinsessionorapplicationscopewillbemaintained.Inaddition,allofthecurrentcontentsfortherequestcollectionswillbeavailabletothe.aspfilereceivingthetransfer.也就是说,一切的Request汇合、Session、Application都是共享的。如许就可以够在分歧的页面举行交互了。



看到这些,我就下手做了一些代码,论述以下:



2完成

我的开端设法是:在一个xml文件中纪录一切的称号-地点对比汇合,然后在default.asp中读取这个汇合,在查询字符串的pg中读取pagename,然后Server.Transfer到响应的页面中。关头代码以下:

default.asp:

<!--#includefile="Functions.asp"-->

<%

OnErrorResumeNext

Response.CharSet="gb2312"



DimopageName,opageURL

opageName=Request.QueryString("pg")

IfopageName""Then

opageURL=GetPage(opageName)

Else

Response.Write"OKOK,Youdidntpassapgparameter."

Response.End

EndIf



IfopageURL=""Then

Response.Write"找不到映照文件for:"&opageName

Else

Server.Transfer(opageURL)

EndIf



IfErr.Number0Then

Response.WriteErr.Description

EndIf

%>




Functions.asp:

<%

OptionExplicit



DimconfigPath,Page_URL_Dict

configPath=Server.MapPath("./conf/app-conf.xml")

SetPage_URL_Dict=Server.CreateObject("Scripting.Dictionary")

‘依据pageName获得页面地点

FunctionGetPage(pageName)



IfPage_URL_Dict.Count=0Then

ReadPageURLToDict

EndIf



GetPage=Page_URL_Dict(pageName)

EndFunction



‘初始化pageName-pageURL对比字典

FunctionReadPageURLToDict()

OnErrorResumeNext

Page_URL_Dict.RemoveAll

DimlogNode,xmlDom,root



SetxmlDom=Server.CreateObject("Microsoft.XMLDOM")

xmlDom.async=False

xmlDom.load(configPath)



Setroot=xmldom.selectSingleNode("//url-mappings")

ForEachlogNodeInroot.childNodes

Page_URL_Dict.AddlogNode.childNodes(0).text,logNode.childNodes(1).text

Next



SetxmlDom=Nothing



IfErr.Number0Then

Response.WriteErr.Source&"<br>"

Response.WriteErr.Description&"<br>"

EndIf

EndFunction

%>




app-conf.xml

<?xmlversion="1.0"?>

<app-conf>

<url-mappings>

<url-mapping>

<page-name>pgHome</page-name>

<page-url>Page2.asp</page-url>

</url-mapping>

<url-mapping>

<page-name>pgShowNews</page-name>

<page-url>shownews-1_0.asp</page-url>

</url-mapping>

<url-mapping>

<page-name>pgHtml</pag</p>ASP是依赖组件的,能访问数据库的组件好多就有好多种,再有就是你微软的工具可是什么都要收钱的啊!

冷月葬花魂 发表于 2015-1-20 09:57:16

如何学好ASP,以前也有人问过,把回答给你转过来看看能否对你有帮助:

老尸 发表于 2015-1-25 10:20:30

ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码,能产生和执行动态、交互式、高效率的站占服务器的应用程序。

精灵巫婆 发表于 2015-1-25 21:54:06

弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。

仓酷云 发表于 2015-2-1 17:16:23

尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。

山那边是海 发表于 2015-2-2 22:30:37

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

小女巫 发表于 2015-2-8 15:27:39

学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。

变相怪杰 发表于 2015-2-25 19:40:18

ASP的语言不仅仅只是命令格式差不多,而是包含在<%%>之内的命令完全就是VB语法。虽然ASP也是做为单独的一个技术来提出的,但他就是完全继承了VB所有的功能。

蒙在股里 发表于 2015-3-8 01:40:40

我就感觉到ASP和一些常用的数据库编程以及软件工程方面的思想是非常重要的。我现在也在尝试自己做网页,这其中就用到了ASP,我想它的作用是可想而知的。

简单生活 发表于 2015-3-15 19:22:05

我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标.

谁可相欹 发表于 2015-3-22 03:09:01

你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。
页: [1]
查看完整版本: ASP网页编程之利用Server.Transfer对URL举行埋没和...