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" />

  • 相关阅读:
    无线传感器网络 与 OMNET++学习笔记(二) NED
    无线传感器网络 与 OMNET++学习笔记(一)
    win10:未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序
    XML 命名空间“clr-namespace:System.Windows.Controls.DataVisualization.Charting;assembly=System.Windows.Controls.DataVisualization.Toolkit”中不存在标记“Chart”
    白书动态规划例题和习题简解
    BZOJ 1266
    BZOJ 1001 (UVa1376, LA3661 )
    UVa 11178
    BZOJ 1787 裸LCA
    BZOJ 2440
  • 原文地址:https://www.cnblogs.com/lwj/p/307557.html
Copyright © 2011-2022 走看看