仓酷云

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

[学习教程] ASP.NET网页编程之asp.net URL重写(URLRewriter) 之简化...

[复制链接]
山那边是海 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:46:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
呵呵,那你就关注微软的招聘信息以及别人的招聘经验啊,还有也不一定去做技术的,你如果真的想去就多了解了解。(其实我的意思是说想到微软做技术是很不容易的。asp.net在asp.net里完成URL重写(URLRewriter)的一个最复杂的办法。
参考了(作者ScottMitchell翻译:Janssen)的高文,固然没有完整看分明,可是也照猫画虎地做了一个,很有“成绩”感。写出来分享一下。
原作里讲了良多的道理,这里就不说了(实在我也不懂)。这里就写操纵历程吧。目标是完成一个最复杂的能完成URL重写的程序。
1、必要设置一下IIS里的站点属性。
2、修正web.config的内容。
<system.web>
<httpHandlers>
<addverb="*"path="*.zhtml"type="ZDIL.URLRewriter.RewriterFactoryHandler,ZDILURLRewriter"/>
</httpHandlers>
</system.web>
个中*.zhtml就是地点栏内里写的网页的扩大名,就是给用户看的,这个能够随便改(可是要切合扩大名的划定规矩!)。固然要和第一步内里的设置相分歧才行。
3、写一个类。
usingSystem;
usingSystem.IO;
usingSystem.Web;
usingSystem.Web.UI;
namespaceZDIL.URLRewriter
{
/**////<summary>
///URL重写
///</summary>
publicclassRewriterFactoryHandler:IHttpHandlerFactory
{
/**////<summary>
///GetHandlerisexecutedbytheASP.NETpipelineaftertheassociatedHttpModuleshaverun.Thejobof
///GetHandleristoreturnaninstanceofanHttpHandlerthatcanprocessthepage.
///</summary>
///<paramname="context">TheHttpContextforthisrequest.</param>
///<paramname="requestType">TheHTTPdatatransfermethod(<b>GET</b>or<b>POST</b>)</param>
///<paramname="url">TheRawUrloftherequestedresource.</param>
///<paramname="pathTranslated">Thephysicalpathtotherequestedresource.</param>
///<returns>AninstancethatimplementsIHttpHandler;specifically,anHttpHandlerinstancereturned
///bythe<b>PageParser</b>class,whichisthesameclassthatthedefaultASP.NETPageHandlerFactorydelegates
///to.</returns>
publicvirtualIHttpHandlerGetHandler(HttpContextcontext,stringrequestType,stringurl,stringpathTranslated)
{
stringsendToUrl=url;//地点栏内里的地点
stringfilePath=pathTranslated;
stringsendToURLString="/web/index.aspx";//真正要会见的页面
stringqueryString="";//参数。好比?id=123
filePath=context.Server.MapPath(sendToURLString);//物理地点
//这句最主要了。转向了。
context.RewritePath(sendToURLString,String.Empty,queryString);

//这个还没有弄分明:)
returnPageParser.GetCompiledPageInstance(url,filePath,context);
}
publicvirtualvoidReleaseHandler(IHttpHandlerhandler)
{//这个也不懂了
}
}
}
这个类呢,要写在一个独自的项目内里,然后编译成ZDILURLRewriter.DLL文件。(注重文件名,写错了就不克不及一般运转了)。
4、完成了。
翻开IE,在地点栏里输出http://.../1.zhtml。
扫瞄者看到是一个静态页的地点,可是实践上会见的倒是/web/index.aspx这个静态网页。

怎样复杂吧。
固然了,这个是最复杂的,复杂到了“不克不及用”的境地了。由于他会把一切的*.zhtml的会见都“重写”到/web/index.aspx。
至于把甚么样的网页重写到哪一个网页,这里就不先容了(这里只讲办法,不讲完成的细节)。
办法良多了,原作是经由过程正则来婚配的,我是经由过程stringsendToUrl=url;来判别的。
其他的就看你们的必要了。
你觉得学习.NET怎么样,我懂的少,问的可能很幼稚,见笑了啊:)
分手快乐 该用户已被删除
沙发
发表于 2015-1-19 11:00:50 | 只看该作者
Asp.net脚本的出现,为ASP空间带来了更高的稳定性,同时也为程序员建站提供更高环境!
若相依 该用户已被删除
板凳
发表于 2015-1-24 12:12:37 | 只看该作者
现在主流的网站开发语言无外乎asp、php、asp.net、jsp等。
愤怒的大鸟 该用户已被删除
地板
发表于 2015-2-1 10:29:59 | 只看该作者
Asp.net:首先来说,Asp.net和Asp没什么关系,看着像是升级版本什么的,其实没什么联系。Asp是脚本编程,用的是ASP语言,而ASP.net用的是C#语言,完全不同的东西。
金色的骷髅 该用户已被删除
5#
发表于 2015-2-7 03:43:25 | 只看该作者
比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变。
蒙在股里 该用户已被删除
6#
发表于 2015-2-20 07:10:38 | 只看该作者
但是目前在CGI中使用的最为广泛的是Perl语言。所以,狭义上所指的CGI程序一般都是指Perl程序,一般CGI程序的后缀都是.pl或者.cgi。
兰色精灵 该用户已被删除
7#
发表于 2015-3-6 16:36:52 | 只看该作者
ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp)。
飘飘悠悠 该用户已被删除
8#
发表于 2015-3-13 04:10:22 | 只看该作者
虽然在形式上JSP和ASP或PHP看上去很相似——都可以被内嵌在HTML代码中。但是,它的执行方式和ASP或PHP完全不同。在JSP被执行的时候,JSP文件被JSP解释器(JSPParser)转换成Servlet代码,然后Servlet代码被Java编译器编译成.class字节文件,这样就由生成的Servlet来对客户端应答。所以,JSP可以看做是Servlet的脚本语言(ScriptLanguage)版。
只想知道 该用户已被删除
9#
发表于 2015-3-20 12:27:16 | 只看该作者
Asp.net脚本的出现,为ASP空间带来了更高的稳定性,同时也为程序员建站提供更高环境!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-23 13:22

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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