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);
}
}
}
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);
}
}
}
相关文章推荐
- HttpHandler:处理特定类型的web页面
- 实战 HTTP 处理程序(HTTP Handler) (4)--与Web程序共享Session
- HttpWebRequest 抓取页面异常处理办法
- Asp.Net 页面请求处理之HttpHandler
- IIS - HTTP 错误 500.21 - Internal Server Error 处理程序“WebServiceHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”
- Angular 4.3 HttpClient (Angular访问 REST Web 服务) 二、Http 请求结果类型转换与错误处理
- HTTP 错误 500.21 - Internal Server Error 处理程序“WebServiceHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”
- HTTP 错误 500.21 - Internal Server Error 处理程序“WebServiceHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”
- HttpWebRequest 抓取页面异常处理方法
- 实战 HTTP 处理程序(HTTP Handler) (4)--与Web程序共享Session
- HTTP核心模块配置静态web服务器 5-MIME类型的设置
- web.config错误处理页面指定
- 关于NGINX Web Server的动态页面处理详解
- ASP.NET 中Http处理流程与 HttpModule,HttpHandler学习之初步认知
- 【Error】JavaWeb: 严重: Failed to initialize end point associated with ProtocolHandler ["http-bio-8080"]
- 10个帮助你处理Web页面层布局的jQuery插件
- 秋色园QBlog技术原理解析:Web之页面处理-内容填充(八)
- web 页面弹框的处理
- Web服务器处理HTTP压缩之gzip、deflate压缩
- 使用CamanJS在Web页面上处理图像的技巧