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

  • 相关阅读:
    svn使用
    navicat 15 安装破解
    thinkpad交换Fn和Ctrl
    emqx_mqtt安装+mqtt管理工具
    Adobe XD使用
    FolderPainter:windows系统为文件夹设置不同颜色
    rest client 代替postman
    使用bfg快速清理git历史大文件
    Adobe Acrobat XI Pro v11.0.10中文版
    Excel 2016打开文档时提示“操作系统当前的配置不能运行此应用程序”
  • 原文地址:https://www.cnblogs.com/lwj/p/307557.html
Copyright © 2011-2022 走看看