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

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

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

出现效果如下:

Asp.net中的路由

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

Asp.net中的路由 

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节点中添加如下内容:

Asp.net中的路由

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

 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-10-08
  • 2021-12-03
  • 2021-12-02
猜你喜欢
  • 2021-07-14
  • 2021-07-17
  • 2022-12-23
  • 2021-08-06
  • 2022-12-23
  • 2022-12-23
  • 2022-03-04
相关资源
相似解决方案