您的位置:首页 > 理论基础 > 计算机网络

HttpHandler:处理特定类型的web页面

2008-06-24 08:49 381 查看
using System;

using System.Data;

using System.Configuration;

using System.Linq;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.HtmlControls;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Xml.Linq;

HttpModule是过滤器,HttpHandler实现了ISAPI扩展功能,他处理请求(Request)的信息和发送响应(Response)。HttpHandler功能通过实行IHttpHandler接口达到。
HttpHandler处理程序实现了System.Web.IHttpHandler接口的.NET组件。任何事项了IHttpHandler接口的类都可以用于处理输入的HTTP请求,这类似于ISAPI扩展。HTTPHandler与ISAPI扩展的区别在于在URL中可以使用HttpHandler的文件名称直接调用,这与ISAPI扩展类似。

实现的步骤:

1、 编写类实现IHttphandler接口,并编译为dll

2、 在web.config或者machine.config文件中注册这个处理程序。

3、 在IIS中把文件扩展(你要处理的文件的扩展名)映射到ASP.NET ISAPI扩展 (aspnet_isapi.dll)上面。

4、建立一个*.xumh的文件,你会发现可以被处理了

using System;

using System.Data;

using System.Configuration;

using System.Linq;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.HtmlControls;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Xml.Linq;

namespace xumh

{

/// <summary>

/// HttpHandler实现IHttpHandler接口,可以定义对特定类型的文件的处理

/// 1、编写类实现IHttpHandler接口,并编译为dll文件

/// 2、在web.config文件中注册

/// <httpHandlers>

/// <add verb="*" path="*.xumh" type="xumh.testHttpHandler,testHttpHandler"/>

/// <add verb="动作:Post/Get" path="处理的文件类型" type="空间.类名,dll名称"/>

/// </httpHandlers>

/// </summary>

public class testHttpHandler : IHttpHandler , System.Web.SessionState.IRequiresSessionState

{

/// <summary>

/// HttpHandler是否可以用于处理相同的其他类型的请求,实现重用

/// </summary>

public bool IsReusable

{

get { return true; }

}

/// <summary>

/// HttpHandler处理程序的核心,调用这个方法来处理Http请求

/// </summary>

/// <param name="context"></param>

public void ProcessRequest(HttpContext context)

{

string html = @"<html>

<body>

<h1>Hello xumh Reader</h1>

</body>

</html>";

//要处理session,必须引入System.Web.SessionState.IRequiresSessionState

System.Web.SessionState.HttpSessionState session = context.Session;

session["One"] = "Session One!";

//

context.Session["Another"] = "Another Session";

context.Response.Write("Session: Another 的值为 " + context.Session["Another"].ToString());

context.Response.Write(html);

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐