知道web.config 中的 urlMappings怎么用

如题所述

猛然发现ASP.NET 2.0本身就提供了对UrlMapping的天然支持--web.config文件中的<urlMappings>节,感叹现在写程序真的不是什么技术活了。

程序代码

<?xml version="1.0"?>
<configuration>
<system.web>
<urlMappings>
<add url="~/2006/07" mappedUrl="~/Month.aspx?year=2006&month=01"/>
<add url="~/2006/08" mappedUrl="~/Month.aspx?year=2006&month=02"/>

</urlMappings>
<compilation debug="true"/>
</system.web>
</configuration>

这个配置可以使ASP.NET程序在ASP.NET Development Server(就是建ASP.NET项目时选文件系统)直接支持UrlMapping,不过它有几个不足之处:
1、只能映射固定的地址,所以只能一个地址一个地址的配置
2、
ASP.NET Development
Server中可以不用配什么别的地方,在IIS中受请求响应模型所限,估计还是要在IIS中设映射。这样的话,反而搞得我到处找资料,看怎么实现在
ASP.NET Development Server设置映射,得到的结果是不行。

针对于UrlMapping的不支持正则表达式的缺
陷,我做了个支持正则表达式的UrlMapping,可惜由于UrlMapping是由HttpApplication调用的,而
HttpApplication是Internal的,不能对它做什么动作,所以实现的东东和UrlMapping相比做在Web.config中多做
个<Section>

文件下载

(下
载文件中包括RegexUrlMapping组件和一个示例ASP.NET,注意ASP.NET程序需部署在IIS中,并且要设置映射,方法是右击虚拟目
录,选属性,选配置,在通配符应用程序映射中添加c:\windows\microsoft.net\framework\v2.0.50727
\aspnet_isapi.dll的引用,并去掉确认文件是否存在的钩,这里是为了偷懒才用通配符全部映射到ASP.NET2.0的ISAPI,实际开
发中最好酌情添加具体一点的映射)

Web.config中的配置举例如下:

程序代码

<?xml version="1.0"?>
<configuration>
<configSections>
<section
name="RegexUrlMappings"
type="Cnblogs.DTC.THIN.RegexUrlMapping.RegexUrlMappingsSection,Cnblogs.DTC.THIN.RegexUrlMapping"/>
</configSections>
<RegexUrlMappings enabled="true" rebaseClientPath="true">
<add url="(\d+)$" mappedUrl="default.aspx?id=$1"/>
<add url="(?<=/)(?<id>[a-z]+)$" mappedUrl="default.aspx?id=${id}" />
<add url="/$" mappedUrl="/default.aspx?id=0"/>
</RegexUrlMappings>
<system.web>
<httpModules>
<add
name="RegexUrlMappingModule"
type="Cnblogs.DTC.THIN.RegexUrlMapping.RegexUrlMappingModule,Cnblogs.DTC.THIN.RegexUrlMapping"/>
</httpModules>
<compilation debug="true"/>
<authentication mode="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}引用了这个组
第三个是固定字符串替换
温馨提示:内容为网友见解,仅供参考
无其他回答

知道web.config 中的 urlMappings怎么用
其中RegexUrlMapping的属性enabled用于打开和关闭映射,rebaseClientPath参见HttpContext.RewritePath中rebaseClientPath参数 <add>用于添加映射规则,url为匹配路径的正则表达式pattern,mappedUrl是替换规则,用法参见Regex.Replace方法 上例中,第一个add在url中用括号定义了组1,所以在后面引用$1 第二个add在ur...

ASP.NET 2.0 下URL映射的实现方法
语法:以下是引用片段:urlMappings enabled="[true|false]"add url="String" mappedUrl="String"\/\/urlMappings如果你想使用URL映射,你必须将enabled属性设置为true。每个add元素都含有一个原URL和映射URL。对,概念很简单!如果我们为上述场景配置了URL映射,config文件中的元素显示如下:以下是引用片段:...

Java EE中web.xml常见url pattern="\/**",两个星号什么意思?
所以这个模式依然是映射URL到请求处理器的(request handler) ,你简单的在ApplicationContext中声明一下,就可以使用SimpleUrlHandlerMapping了. DispatcherServlet会根据类型找到的,并且不会创建默认的映射器了(BeanNameUrlHandlerMapping).意思就是, 如果你想两个都用,那么就要全部声明一下在ApplicationContext...

SpringBoot--WebMvcConfigurer详解
在实现WebMvcConfigurer接口时,`addResourceHandlers`方法用于配置静态资源映射路径,例如将`file\/static\/`目录下的资源映射到项目根目录`E:\\\\springboot\\\\`下,允许通过URL直接访问。若使用`WebMvcConfigurationSupport`类,需确保重写了`addResourceHandlers`方法。此外,`addResourceHandler`方法中路径配置需完...

手把手带你学webpack(6)--source-map
\/\/#sourceMappingURL=bundle.js.map 即配置一个sourceMappingURL属性,其值为source-map文件所在位置,并且还需要浏览器的开发者工具中开启了EnableJavaScriptsourcemaps后才能生效2.souce-map的数据结构 在上一篇讲解webpack模块化原理的文章中,我们在webpack.config.js中配置了devtools:'source-map',然后打包的结果中...

springboot跨域访问?
跨域都是通过前端JSONP来解决,但只能处理get类型请求,像post、put、delete就不支持,所以一般采用后端跨域通过WebMvcConfiguration接口来重写addCorsMappings方法,解决跨域问题。在SpringBoot项目中,可以配置全局跨域。解决方法创建一个跨域的配置类CorsConfig.java,然后通过@Configuration注解将该类交给Spring...

webstorm怎么运行web工程?
(1)打开设置setting面板 (2)找到Project Settting中的Deployment选项。右侧会出现+号,点击填写名称tomcat,type选择Local or……。然后点击OK。(3)配置tomcat服务器,首先是connection选项卡,其中的upload\/download project files选择要部署到tomcat服务器目录。webserver root url则是用来运行该站点的...

...扫描到但是SimpleUrlHandlerMapping中的prop无法解析
回答:我怎么感觉抽奖的那个是坑爹。

【网络安全】Spring Boot eureka xstream 反序列化
对于Linux,利用目标机器的python来反弹shell。通过设置eureka.client.serviceUrl.defaultZone属性并刷新配置,成功触发RCE。为了修复此漏洞,可禁用\/env接口(endpoints.env.enabled=false),但需确保不影响业务或运维需求。更安全的做法是在pom.xml文件中引入spring-boot-starter-security依赖,并在application....

...\/admin下,听说放在web_inf下比较安全?具体怎样配置?
<\/action-mappings> <\/struts-config> 上面这个配置非常简单,这里定义了一个action类,它的路径为\/test,所对应的类为test.TestAction.java,它都一个跳转页面,别名为test,对应的页面为\/WEB-INF\/jsp\/test\/test.jsp。下面我们对例1的内容进行修改,使其跳转到\/test去。例5:修改后的\/test\/test1....

相似回答