仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 483|回复: 10
打印 上一主题 下一主题

[学习教程] ASP网页编程之利用Server.Transfer对URL举行埋没和...

[复制链接]
简单生活 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 23:34:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
只要你想学,就没什么优缺点,上面那位大哥已经把网上的评论说了,但我认为想学哪个都一样,不然它就不可能在当今时代数字艺术方面存活到今天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 | 只看该作者
弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。
5#
发表于 2015-2-1 17:16:23 | 只看该作者
尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。
山那边是海 该用户已被删除
6#
发表于 2015-2-2 22:30:37 | 只看该作者
我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。
小女巫 该用户已被删除
7#
发表于 2015-2-8 15:27:39 | 只看该作者
学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。
变相怪杰 该用户已被删除
8#
发表于 2015-2-25 19:40:18 | 只看该作者
ASP的语言不仅仅只是命令格式差不多,而是包含在<%%>之内的命令完全就是VB语法。虽然ASP也是做为单独的一个技术来提出的,但他就是完全继承了VB所有的功能。
蒙在股里 该用户已被删除
9#
发表于 2015-3-8 01:40:40 | 只看该作者
我就感觉到ASP和一些常用的数据库编程以及软件工程方面的思想是非常重要的。我现在也在尝试自己做网页,这其中就用到了ASP,我想它的作用是可想而知的。
简单生活 该用户已被删除
10#
 楼主| 发表于 2015-3-15 19:22:05 | 只看该作者
我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标.
谁可相欹 该用户已被删除
11#
发表于 2015-3-22 03:09:01 | 只看该作者
你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-25 01:35

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表