仓酷云

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

[学习教程] ASP.NET网页设计撑持正则表达式的UrlMapping(ASP.NET2...

[复制链接]
变相怪杰 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:45:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
也许C#刚上市的时候有些抄袭Java吧,但自从C#2.0上市之后,整个局面就扭转乾坤了,不但Java在模仿C#,而且他从来都没能跟得上C#的脚步。asp.net|正则突然发明ASP.NET2.0自己就供应了对UrlMapping的自然撑持--web.config文件中的<urlMappings>节,叹息如今写程序真的不是甚么手艺活了。

<?xmlversion="1.0"?>
<configuration>
<system.web>
<urlMappings>
<addurl="~/2006/07"mappedUrl="~/Month.aspx?year=2006&month=01"/>
<addurl="~/2006/08"mappedUrl="~/Month.aspx?year=2006&month=02"/>
</urlMappings>
<compilationdebug="true"/>
</system.web>
</configuration>
这个设置可使ASP.NET程序在ASP.NETDevelopmentServer(就是建ASP.NET项目时选文件体系)间接撑持UrlMapping,不外它有几个不敷的地方:
1、只能映照流动的地点,以是只能一个地点一个地点的设置
2、ASP.NETDevelopmentServer中能够不必配甚么其余中央,在IIS中受哀求呼应模子所限,估量仍是要在IIS中设映照。如许的话,反而弄得我各处找材料,看怎样完成在ASP.NETDevelopmentServer设置映照,失掉的了局是不可。
针关于UrlMapping的不撑持正则表达式的缺点,我做了个撑持正则表达式的UrlMapping,惋惜因为UrlMapping是由HttpApplication挪用的,而HttpApplication是Internal的,不克不及对它做甚么举措,以是完成的东东和UrlMapping比拟做在Web.config中多做个<Section>
文件下载
(下载文件中包含RegexUrlMapping组件和一个示例ASP.NET,注重ASP.NET程序需部署在IIS中,而且要设置映照,办法是右击假造目次,选属性,选设置,在通配符使用程序映照中增加c:windowsmicrosoft.netframeworkv2.0.50727aspnet_isapi.dll的援用,并往失落确认文件是不是存在的钩,这里是为了偷懒才用通配符全体映照到ASP.NET2.0的ISAPI,实践开辟中最好酌情增加详细一点的映照)
Web.config中的设置举比方下:

<?xmlversion="1.0"?>
<configuration>
<configSections>
<sectionname="RegexUrlMappings"type="Cnblogs.DTC.THIN.RegexUrlMapping.RegexUrlMappingsSection,Cnblogs.DTC.THIN.RegexUrlMapping"/>
</configSections>
<RegexUrlMappingsenabled="true"rebaseClientPath="true">
<addurl="(d+)$"mappedUrl="default.aspx?id=$1"/>
<addurl="(?<=/)(?<id>[a-z]+)$"mappedUrl="default.aspx?id=${id}"/>
<addurl="/$"mappedUrl="/default.aspx?id=0"/>
</RegexUrlMappings>
<system.web>
<httpModules>
<addname="RegexUrlMappingModule"type="Cnblogs.DTC.THIN.RegexUrlMapping.RegexUrlMappingModule,Cnblogs.DTC.THIN.RegexUrlMapping"/>
</httpModules>
<compilationdebug="true"/>
<authenticationmode="Windows"/>
</system.web>
</configuration>
个中RegexUrlMapping的属性enabled用于翻开和封闭映照,rebaseClientPath拜见HttpContext.RewritePath中rebaseClientPath参数
<add>用于增加映照划定规矩,url为婚配路径的正则表达式pattern,mappedUrl是交换划定规矩,用法拜见Regex.Replace办法
上例中,第一个add在url顶用括号界说了组1,以是在前面援用$1
第二个add在url顶用(?<id>)界说了组id,前面用${id}援用了这个组
第三个是流动字符串交换
呵呵,看来正则表达式仍是很主要滴~~
简单的说:.net只有微软一家在做的,微软也不允许别人跟他做相同的工具,所以他就把需要的工具全部封装在.net的平台上了;而java是公开了。
柔情似水 该用户已被删除
沙发
发表于 2015-1-19 22:46:12 | 只看该作者
对于中小项目来说.net技术是完全可以胜任,但为什么现在大型公司或网站都选择php或java呢?就是因为微软不够开放,没有提供从硬件到应用服务器再到业务应用的整套解决方案。
不帅 该用户已被删除
板凳
发表于 2015-1-25 14:37:15 来自手机 | 只看该作者
ASP.net1.1和2.0在程序上的语法也有很大不同,现在2.0属于新出来的,不知道半年后会不会有3.0(说笑一下)。Windows2003系统自动支持ASP和ASP.net环境,不用安装任何程序。Asp.net属于编译语言。ASP的最大不同(ASP属于解释语言)。
admin 该用户已被删除
地板
发表于 2015-2-2 22:30:35 来自手机 | 只看该作者
虽然在形式上JSP和ASP或PHP看上去很相似——都可以被内嵌在HTML代码中。但是,它的执行方式和ASP或PHP完全不同。在JSP被执行的时候,JSP文件被JSP解释器(JSPParser)转换成Servlet代码,然后Servlet代码被Java编译器编译成.class字节文件,这样就由生成的Servlet来对客户端应答。所以,JSP可以看做是Servlet的脚本语言(ScriptLanguage)版。
灵魂腐蚀 该用户已被删除
5#
发表于 2015-2-8 15:24:48 | 只看该作者
微软又推出ASP.NET。这不是ASP的简单升级,而是全新一代的动态网页实现系统,用于一台WEB服务器建立强大的应用程序。是微软发展的新体系结构.NET的一部分,是ASP和.NET技术的结合。
第二个灵魂 该用户已被删除
6#
发表于 2015-2-25 19:38:47 | 只看该作者
碰到复杂点的问题都不知道能不能解决,现在有点实力的公司都选择自已在开源的基础上做开发。但没听说过有人在IIS上做改进的,windows、sqlserver集群方面的应用也很少见。
小妖女 该用户已被删除
7#
发表于 2015-3-8 01:41:26 | 只看该作者
我觉得什么语言,精通就好,你要做的就是比其他80%的人都厉害,你就能得到只有20%的人才能得到的高薪。
精灵巫婆 该用户已被删除
8#
发表于 2015-3-15 19:49:43 | 只看该作者
它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。
若天明 该用户已被删除
9#
发表于 2015-3-22 03:11:15 | 只看该作者
asp.net空间的支持有:ASP.NET1.1/虚拟目录/MicrosoftFrontPage2000扩展/CDONTS,同时他的网站上也提供了Asp.net的使用详解和程序源代码,相信对使用ASP.NET编程的程序员来说会非常有用哦!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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