Asp.net中的路由

 

做为web开发人员,你肯听说过url重写,Routing,也行你也会用这些技术,但在这些技术的背后,你知道他们是怎么运行的吗?一直很苦闷,心里有点不踏实,看了URL重写,实现了效果,但根本不知道发生了什么,还有MVC中的Router,心里总是没底,所有我想有必要把这些知识做一个总结,权当作是一个学习笔记吧!本人文笔有限,也不知道从什么地方开始写,姑且从IHttpHandler开始吧!

我们首先开始新建一个网站,命名为URL,然后添加一段代码,之后结构如下:

现在我们开始运行我们的程序,在地址栏输入:http://localhost:2459/URL/httpHandlerexample.aspx

出现效果如下:

你也许会奇怪了,我们并没有新建一个httpHandlerexample.aspx的文件,文件中只有一个HttpHandlerExample的类?为什么会出现这种现象呢?这就是今天我们要讨论的IHttpHandler接口的作用了,IHttpHandler接口的定义如下:

 

http处理程序只不过是实现了IHttpHandler接口的类

IsReusable属性返回一个bool值,这个值用来指示其他请求是否可以使用 IHttpHandler 实例。

ProcessRequest方法用来处理http请求。下面我们就来分析一下HttpHandlerExample.cs的代码,看究竟发生了什么。代码如下:

public class HttpHandlerExample:IHttpHandler

{

      public HttpHandlerExample()

      {   

      

      }

        public bool IsReusable

        {

            get { return true; }

        }

        public void ProcessRequest(HttpContext httpContext)

        {

            httpContext.Response.Write("Hello world!");

        }

}

   HttpHandlerExample类实现了IHttpHandler接口,用来处理一个http请求,但这个程序并没有入口,我们怎么调用他,这就要用到了web.config中的配置文件了,他会指示将特定的文件映射到web服务器资源。

system.webhttpHandlers节点中添加如下内容:

现在你可以会明白了,原理是把httpHandlerexample.aspx文件映射到了HttpHandlerexample类中了。

 

posted @ 2009-11-03 10:42  传说中的祥哥  阅读(420)  评论(0编辑  收藏  举报