关于HttpModule和HttpHandler 在ASP.NET中实现Url Rewriting

http://dotnet.chinaitlab.com/ASPNET/529952.html 

 关于HttpModule和HttpHandler
ASP.NET的必须知道的东东(HttpModule,HttpHandler)之一
ASP.NET的必须知道的东东(HttpModule,HttpHandler)之二
HttpHandler HttpModule 做出属于自己的后缀的网页 !
学习HttpHandler和HttpModule
ASP.NET必须知道的:HttpModule,HttpHandler
C#强化系列文章八:HttpModule,HttpHandler,HttpHandlerFactory简单使用

http://www.cnblogs.com/huoxingren/archive/2007/02/14/649906.html

asp.net httpmodule and httphander 

 实战 HTTP 处理程序(HTTP Handler) (6)——条码随意打
    实战 HTTP 处理程序(HTTP Handler) (5)——不用临时文件,直接打开动态生成的文件
    实战 HTTP 处理程序(HTTP Handler) (4)——与Web程序共享Session
    实战 HTTP 处理程序(HTTP Handler) (3)——动态生成图片
    实战 HTTP 处理程序(HTTP Handler) (2)——向HTTP 处理程序传递参数   <- you are here. 
    实战 HTTP 处理程序(HTTP Handler) (1)——创建一个最简单的 HTTP Handler  

一点一点学ASP.NET之基础概念——HTTP运行期与页面执行模型 作者:文野
  • 一点一点学ASP.NET之基础概念——HttpModule 作者:文野
  • 一点一点学ASP.NET之基础概念——HttpHandler 作者:文野
  • 一点一点学ASP.NET系列(持续更新) 作者:文野
  • 一点一点学ASP.NET之示例——HttpModule 示例 作者:文野
  • 一点一点学ASP.NET之基础概念——委托 作者:文野
  • 一点一点学ASP.NET之基础概念——事件 作者:文野

     

  • Asp.Net 三层式Web应用程序开发 - Part.1 作者:Jimmy Zhang
  • [编]在Web站点中创建和使用Rss源 作者:Jimmy Zhang
  • Asp.Net 构架(Http Handler 介绍) - Part.2 作者:Jimmy Zhang
  • Asp.Net构架(Http请求处理流程) - Part.1 作者:Jimmy Zhang
  • Asp.Net 构架(HttpModule 介绍) - Part.3 作者:Jimmy Zhang
  • [转帖]ASP.Net 中自定义Http 处理及应用之HttpHandler篇
    [转帖]ASP.Net 中自定义Http 处理及应用之HttpModule篇 
     

     

     

    -------------------------------------------------------

    httpHandler用来做什么?  有意思

    先来看个简明的》  from:http://www.i170.com/user/interface/Article_3069
    httphandler是做什么的?用任何一个搜索引擎都可以找到一大堆资料,我就不多说了,把我今天学习的一些认识写在这里,希望可以从另一个侧面让大家认识httphandler。
    所谓httphandler,其实是.net用来处理页面请求的。大家可以想想,forms验证所能保护的只是.aspx后缀的文件,而.config后缀的文件是不可访问的。所有这些都是由asp.net内置的一些httphandler处理的。而我们之所以要学习使用httphandler,主要是因为我们想自己来处理一些http请求。
    从google上搜索"httphandler .net",大概搜到的httphandler的用途有:
    1.防止盗链。主要是防止图片的盗链。
    2.使用url重写。这个我还没有仔细看,大概的意思就是可以使Url转向正确的地址,比如说把很长的url变短,使不存在的url转到提示错误或默认的地址。
    3.执行一些短小方便的作用。比如有的文章说使用httphandler来实现注销功能。
    4.等等等等
    作为asp.net的http处理的核心之一,httphandler的作用自然不止这些。我最近要学httphandler主要是因为我找的工作(要毕业了,Hoho...)要使用这个来处理自定义的后缀名的文件,形如http://localhost/hello.notus这样的网页,站内所有页面的后缀名都使用.notus,为的是使用自定义的页面生成方法(主要是在生成页面的时候使用了xml+xslt)。
    上面说了一些httphandler的作用,下面把今天学习的内容下下来,我敢说下面肯定有你需要的东西,因为这个东西我是好久才悟出来的(什么,大家当时一看就知道了?难道我真的是最笨的?)
    查阅.net sdk 文档,你会发现有IHttpHandler和IHttpHandlerFactory,前面的是自定义httphandler所需要实现的接口,后面的是是自定义返回httphandler的工厂所需要实现的接口,这两个东西在web.config中的注册方法都是一样的。对于前者,很好理解,那后面的工厂是做什么的?
    答案自然是返回一个httphandler(……)。
    返回的httphandler是做什么的?
    答案是用来处理当前的http请求。
    既然都是处理当前的http请求,那为什么不直接用IHttpHandler?
    不知道。
    工厂是什么?
    是工厂模式吧?
    工厂模式是做什么的?
    可以根据客户需要返回合适的产品。
    那IHttpHandlerFactory的作用是什么?
    嗯,根据当前的http请求返回合适的HttpHandler。
    看到了吧,就是这个意思哦。比如说要对http://localhost/hello.notus这个url进行特别的处理,那当请求这个Url时,工厂就单独返回处理hello的HttpHandler,而是其它的url时,就返回一个通用的HttpHandler
    下面是简单的代码示例:
    System.Web.IHttpHandler GetHandler(System.Web.HttpContext context, string requestType, string url, string pathTranslated)
    {
    //文件的全名
    string fname=url.Substring(url.LastIndexOf("/")+1);
    //文件名
    string cname=fname.Substring(0,fname.IndexOf("."));
    //根据需要返回合适的HttpHandler
    if(cname=="hello")
    return new HandlerHello();
    else
    return new HandlerCommon();
    }

    这里是CSDN上的一篇更具体的文章,用HttpHandler作URL重写:
    http://dev.csdn.net/develop/article/45/45585.shtm

    ------------------------------------------------------------------------------------

     

    ASP.NET纯代码实现伪静态地址(URL重写)

    全面解析ASP.NET2.0下的URL重写

    简单实用的重写URL(URLRewriter.dll) 

  • UrlRewritingNet 完美实现 ASP.NET 2.0 中的URL重写(映射)

  • msdn http://msdn.microsoft.com/zh-cn/library/ms972974.aspx

  • posted @ 2008-07-13 14:21  barney  阅读(1306)  评论(0编辑  收藏  举报