为什么要用HttpHandler以及HttpModule??

Blizzard_ 2008-07-12 02:46:45
关于HttpHandler以及HttpModule已经基本明白,就是有一点没有想清楚,为什么要用HttpHandler以及HttpModule?我在项目里另外写一个类来实现相关的操作不可以吗?
比如说实现图片防盗链,我在直接写一个方法判断UrlReferrer.Host与Url.Host相同否不ok吗?使用HttpHandler有什么好处?难道仅仅只是在程序比较底的层去判断?还有用HttpModule来实现IP黑名单。这些好像都可以直接写一个类或方法去判断啊,没必要用HttpHandler与HttpModule啊。请大家帮我解释一下这么用具体的好处。
...全文
170 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
小宏 2009-04-22
  • 打赏
  • 举报
回复
记号。。。
白s菜 2009-04-22
  • 打赏
  • 举报
回复
标个记号
Blizzard_ 2008-07-12
  • 打赏
  • 举报
回复
我的天啊。。呵呵。。好的知道了结贴!!谢谢
  • 打赏
  • 举报
回复
例子可以下载.textBlog,微软的例子说明httphander的,最好的例子就是URL重写
suiqirui19872005 2008-07-12
  • 打赏
  • 举报
回复

private void app_end(Object o, EventArgs e)
{
HttpApplication app = (HttpApplication)o;
app.Context.Response.Write("<H1> 网站简介-广告服务-网站地图-帮助-联系方式-诚聘英才-English- 问题报告
世纪乐知(北京)网络技术有限公司 版权所有 京 ICP 证 020026 号
Copyright © 2000-2007, CSDN.NET, All Rights Reserved</H1>");
}


Blizzard_ 2008-07-12
  • 打赏
  • 举报
回复
谢谢,我基本上明白了。不知道您能不能给我举一个实际应用上的例子呢?
suiqirui19872005 2008-07-12
  • 打赏
  • 举报
回复


/// <summary>
///Class1 的摘要说明
/// </summary>
public class Class1:IHttpModule
{
public Class1()
{
//
//TODO: 在此处添加构造函数逻辑
//
}
public void Init(HttpApplication app)
{
app.BeginRequest += (new EventHandler(this.app_begin));
app.EndRequest += (new EventHandler(this.app_end));
}
private void app_begin(Object o, EventArgs e)
{
HttpApplication app = (HttpApplication)o;
app.Context.Response.Write("<H1> 我是最先请求</H1>");
}
private void app_end(Object o, EventArgs e)
{
HttpApplication app = (HttpApplication)o;
app.Context.Response.Write("<H1> 我是最后请求</H1>");
}
public void Dispose()
{
}
}



生成Class1.dll

<httpModules >
<add name="test" type ="Class1,Class1"/>
</httpModules>
Blizzard_ 2008-07-12
  • 打赏
  • 举报
回复
HttpModule会在页面处理前和后对页面进行处理,所以它不会影响真正的页面请求。通常用在给每个页面的头部或者尾部添加一些信息
这句没有全部理解,我知道HttpModule管道是一个请求被处理的前后都要经过的,但还是没有太理解这句话,请点播一下。或者举个例子吧,来一个实际的例子说明一下。谢谢啦 :)
suiqirui19872005 2008-07-12
  • 打赏
  • 举报
回复
为什么要用HttpHandler以及HttpModule
--------------
HttpModule用于页面处理前和处理后的一些事件的处理,HttpHandler进行真正的页面的处理。

HttpHandler 自行处理某些类型的HTTP请求信息流的话,中途截获一个httpRequest并做些自己的处理,

HttpModule会在页面处理前和后对页面进行处理,所以它不会影响真正的页面请求。通常用在给每个页面的头部或者尾部添加一些信息

共同点:可以用于对HttpRequest的截取,完成自定义的处理


  • 打赏
  • 举报
回复

帮顶..mark
Blizzard_ 2008-07-12
  • 打赏
  • 举报
回复
就只是上面两位说的这些好处吗?没有了吗?我总感觉不该啊,应该还有别的好处的
mengjun5200 2008-07-12
  • 打赏
  • 举报
回复
赶时间,做个记号,等我办完事慢慢吸收
littlelam 2008-07-12
  • 打赏
  • 举报
回复
可以做统一处理了,如果你自己写个类,那每个页面不是要调用一次!
winner2050 2008-07-12
  • 打赏
  • 举报
回复
不用到处加代码处理
Blizzard_ 2008-07-12
  • 打赏
  • 举报
回复
没人吗?请告诉我为什么要这样做就行!
Blizzard_ 2008-07-12
  • 打赏
  • 举报
回复
顶一把,大家帮我解释一下,谢谢,详细点好。

62,168

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧