zoukankan      html  css  js  c++  java
  • dottext中HttpHandler的一些分析


    <HttpHandler pattern="/rss\.aspx$" type="Dottext.Common.Syndication.RssHandler, Dottext.Common" handlerType="Direct" />

    -->RssHandler

    -->BaseSyndicationHandler:ProcessRequest()

    -->其中CurrentBlog = Config.CurrentBlog(context);

         这个CurrentBlog变量经常使用,比较关键,经过一系列的类初始化后,最后实际调用的是

    -->SqlDataProvider:

    public IDataReader GetConfigByApp(string app)

    {

    SqlParameter[] p =

    {

    SqlHelper.MakeInParam("@Application",SqlDbType.NVarChar,50,app)

    };

    return GetReader("blog_GetConfigByApp",p);

    }

    如果访问的是某人的blog的rss.aspx连接,这里的app就是用户名了,像我就是"lwj"

    -->返回ProcessRequest函数处理,接下看 ProcessFeed();

         RssHandler:ProcessFeed()

    -->其中RssWriter writer = new RssWriter(Entries.GetEntryCollection(query));

         跟踪可知,GetEntryCollection()函数调用了存储过程"blog_GenericGetEntries_10",取得blog的内容,

    每一项内容为一个entry,最后得到的是entry collection

         然后初始化writer,这是RSS显示为XML的关键

         
    -->RssWriter继承自BaseRssWriter,后者又继承自BaseSyndicationWriter,后者又继承自XmlTextWriter

         代码比较简单,不过是string输出

    -->返回ProcessRequest函数处理,接下来WriteFeed();输出页面,至此完成

    接下来有好几个HttpHandler都是差不多的结构,没有细看

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

    <HttpHandler pattern="/BlogSearch\.aspx$" controls="BlogSearch.ascx" />

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

    <HttpHandler pattern="/(?:admin)" type="Dottext.Web.UI.Handlers.BlogExistingPageHandler, Dottext.Web" HandlerType="Factory" />

  • 相关阅读:
    JavaScript监控当前cpu使用状况
    JavaScript面向对象编程深入分析(1)
    学习Javascript闭包(Closure)
    JavaScript面向对象编程深入分析(3)
    JavaScript面向对象编程深入分析(2)
    浏览器的标准模式和怪异模式
    js实现简单网速测试方法
    浏览器的两种模式quirks mode 和strict mode
    详解Javascript 中的this指针
    virtualbox安装centos 6.4 server 网络连接问题
  • 原文地址:https://www.cnblogs.com/lwj/p/307557.html
Copyright © 2011-2022 走看看