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

0
0
(请您对文章做出评价)
« 上一篇:asp.net forums中的UrlRewrite拾锦
» 下一篇:如果可以,请将此BLOG移到生活板块
posted on 2005-12-29 17:06 lwj 阅读(196) 评论(2)  编辑 收藏 所属分类: ASP.NET

评论:
#1楼[楼主] 2005-12-29 17:08 | lwj      
此帖未完,以后再补
  回复  引用  查看    
#2楼 2008-03-22 00:17 | 破曉之陽      
不错。。
  回复  引用  查看