asp.net[web.config] httphandlers 与实现自由定义访问地址
今天一起来看一个简单的例子,主要是用来实现一个映射功能,
我们一般访问一个网址的时候比如是这样的
http://localhost:6166/WebSite1/api/request.aspx?strtext=123
那么大家一定都会说,在网站WebSite1的api目录下一定有request.aspx这样一个文件。
那么我今天要告诉你的就是没有这个文件。如下图


你没有看错,没有报任何的错误,
那这是怎么回事呢。
我们现在可以来看看这个目录下有一个Webconfig文件,咱们打开看一下
<?xml version="1.0"?>
<configuration>
<!--IIS经典模式下使用-->
<system.web>
<httpHandlers>
<add path="request.aspx" verb="*" type=" Bll.Handler.Test"/>
<add path="test.aspx" verb="*" type=" Bll.Handler.Test"/>
</httpHandlers>
</system.web>
<!--IIS集成模式下使用-->
<!--<system.webServer>
<handlers>
<add name="request" path="request.aspx" verb="*" type=" Bll.Handler.Test"/>
<add name="test" path="test.aspx" verb="*" type=" Bll.Handler.Test"/>
</handlers>
</system.webServer>-->
</configuration>
这是什么意思呢。
这里面有两种配置,主要是适用于IIS的集成模式和经典模式,只是配置不同,暂时没有其他的不同点
大家知道就行了,
下面以经典模式来分析下吧
<add path="request.aspx" verb="*" type=" Bll.Handler.Test"/>
path这个呢就是我们访问的网页地址,就是上面输入的,我们找不到的那个文件名
然后对应的处理程序是type=" Bll.Handler.Test"
verb="*" 是指定接收的方式,*是Get,Post都可以,也可以直接写Post这样就只接收Post提交了。
现在大家明白了吧
你访问request.aspx其实访问的就是Bll.Handler.Test.cs
看代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using Bll; namespace Bll.Handler
{
class Test : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
//接收这个参数
string strtext = context.Request["strtext"].Trim();
//输出这个参数
context.Response.Write(strtext);
}
public bool IsReusable
{
get
{
return false;
}
}
}
}
我的Webconfig有两个配置意思就是说我们可以给这个Test.cs文件定义多个文件名来访问,这样前台怎么也找不到你实际访问的是那个页面,而且还可以达到封装的效果。让非开发着不能轻易的看到你的页面代码。
因为这个是可以放在一个类库里面的。
如下

也算是加了一层安全机制吧,
并且方便了大家控制
我们不管访问的是http://localhost:6166/WebSite1/api/request.aspx?strtext=123
还是http://localhost:6166/WebSite1/api/test.aspx?strtext=123
都是在访问一个一般处理程序Test.cs
而且这个访问的名字大家可以随便配置,我个人感觉还是很方便的。
有兴趣的朋友可以试试
asp.net[web.config] httphandlers 与实现自由定义访问地址的更多相关文章
- ASP.NET Web.config学习
花了点时间整理了一下ASP.NET Web.config配置文件的基本使用方法.很适合新手参看,由于Web.config在使用很灵活,可以自定义一些节点.所以这里只介绍一些比较常用的节点. <? ...
- Asp.net Web.Config - 配置元素 caching
Asp.net Web.Config - 配置元素 caching 记得之前在写缓存DEMO的时候,好像配置过这个元素,好像这个元素还有点常用. 一.caching元素列表 元素 说明 cache ...
- ASP.NET web.config中数据库连接字符串connectionStrings节的配置方法
ASP.NET web.config中数据库连接字符串connectionStrings节的配置方法 第一种情况,本地开发时,使用本地数据库,如下面的代码 <connectionStrings& ...
- ASP.NET Web.config
分析: .NET Web 应用程序的配置信息(如最常用的设置ASP.Net Web 应用程序的身份验证方式),它可以出现在应用程序的每一个目录中.当你通过VB.NET新 建 一个Web应用程序后,默认 ...
- asp.net web.config 设置Session过期时间
在Asp.net中,可以有四处设置Session的过期时间:(原文作者:望月狼地址:http://www.cnblogs.com/wangyuelang0526/) 一.全局网站(即服务器)级 IIS ...
- asp.net web.config的学习笔记
原文地址:http://www.cnblogs.com/Bulid-For-NET/archive/2013/01/11/2856632.html 一直都对web.config不太清楚.这几天趁着项目 ...
- asp.net web.config配置节说明
web.config 文件查找规则: (1)如果在当前页面所在目录下存在web.config文件,查看是否存在所要查找的结点名称,如果存在返回结果并停止查找. (2)如果当前页面所 ...
- asp.net web.config配置节说明(转发)
原文地址:http://www.cnblogs.com/qingyuan/articles/1501644.html web.config 文件查找规则: (1)如果在当前页面所在目录下存在 ...
- ASP.NET web.config中的连接字符串
在ASP.NET的web.config中,可以用两种方式来写连接字符串的配置. <configuration> <appSettings> <add key=" ...
随机推荐
- javascript 核心语言笔记 5 - 语句
表达式在 JavaScript 中是短语(phrases),那么语句(statements)就是 JavaScript 整句或命令,语句以分号结束.表达式计算出一个值,语句用来执行以使某件事情发生 表 ...
- mysql深入浅出的笔记(存储过程一)
1.存储过程和函数.... 存储过程和函数是事先经过编译并存储在数据库中的一段SQL语句的集合,调用存储过程和函数可以简化应用开发人员的很多工作, 减少数据在数据库中和应用服务器之间的传说 ...
- APP产品交互设计分析总结(不断更新中...)
1.首页中的最下方的TAB和中部的TAB的区别 最下面的tab按钮应该是核心级模块级的大功能入口 中间的按钮应该是次核心级页面级的小功能入口 2.对于编辑是在单页内实现好还是跳转到新页面实现好 内容比 ...
- 10.Pattern 和 Matcher
Pattern:正则表达式的模式类 获取对象的函数Pattern pattern=Pattern.compiler(regex); 功能函数: 1.pattern.split(String targe ...
- eclipse优化设置
1. Eclipse的控制台console有时候经常的跳出来,非常的烦人! 让它不经常的调出来,可以按下面的操作去掉它: windows -> preferences -> r ...
- 工作中常用的awk命令
http://man.linuxde.net/awk 1.为一列id加逗号 awk 'BEGIN {ORS=","}{print $1}' test.txt 2.统计一列id中重复 ...
- 亚马逊S3下载上传文件
引用网址: http://www.jxtobo.com/27697.html 下载 CloudBerry Explorer http://www.cloudberrylab.com/download- ...
- byobu相关操作
http://lingbjxm.iteye.com/blog/2155833 重命名窗口:Fn F8
- JavaScript使用封装
基本封装方法 请看下面的例子: var Person = function(name,age){ this.name = name; this.age = age || "未填写" ...
- 面试中常问的有关随机选取k个数的总结
1.在半径为1的圆中随机选取一点. 2.给定一个未知长度的整数流,如何随机选取一个数 3.给定一个数据流,其中包含无穷尽的搜索关键字(比如,人们在谷歌搜索时不断输入的关键字).如何才能从这个无穷尽的流 ...