分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

ASP.NET处理管道初谈

发布时间:2023-09-06 02:05责任编辑:彭小芳关键词:.NET

    客户端往发送的请求到达服务端到服务端响应回客户端的这段时间内,实际上服务器内并不只是简单地对请求进行处理,然后把处理结果响应回去,而是经过一系列多达19个事件之后才能产生最后地处理结果。

    因此:其处理的过程就如同一个管道,请求从一端进入,经过一系列事件之后,变成结果响应回去。

了解处理管道:

    1.处理管道是所有请求地“必经之路”

    2.当一个请求到达处理管道时,服务器会创建一个HttpApplication对象来负责当前整个请求的处理过程

    *每一个请求一定会有一个HttpApplication对象陪伴走完管道,因此才能实现统一设计。

实现处理管道:

为了方便学习,首先,先创建3个一般处理程序:

//第一个

public class Handler1 : IHttpHandler
???{

???????public void ProcessRequest(HttpContext context)
???????{
???????????context.Response.ContentType = "text/html";
???????????context.Response.Write("<h2>我是Handler1的标签</h2>");
???????}

//第二个

public void ProcessRequest(HttpContext context)
???????{
???????????context.Response.ContentType = "text/html";
???????????context.Response.Write("<h2>我是Handler2的标签</h2>");
???????}

//第三个

public void ProcessRequest(HttpContext context)
???????{
???????????context.Response.ContentType = "text/html";
???????????context.Response.Write("<h2>我是Handler3的标签</h2>");
???????}

解决步骤:

1.自定义一个模块(HttpModule)类 

命名规范:XXXModule

2.让模块从IHttpModule接口继承 

3.在模块类的Init方法中注册管道的HttpApplication对象的事件

常用的事件:beginRequest endRequest

4.设计事件过程

以上1234综合起来写法如下:

namespace CLGD
{
???public class AppendAuthorModule:IHttpModule
???{

???????public void Dispose()
???????{
???????}

???????public void Init(HttpApplication context)
???????{
???????????context.EndRequest += context_EndRequest;
???????}

???????void context_EndRequest(object sender, EventArgs e)
???????{
???????????HttpApplication app = sender as HttpApplication;
???????????HttpContext context = app.Context;
???????????context.Response.Write("作者是微软工作室");
???????}
???}
}

5.将设计好的模块注入到处理管道中的相应位置

在配置文件中:

<system.webServer>
???<modules>
?????<add name="AppendAuthor" type="CLGD.AppendAuthorModule"/>

                    有意义的名字                 模块的命名空间.模块的类名
???</modules>
?</system.webServer>

此示例的结果为每个标签后面都会有个 作者是微软工作室 的文本

    

ASP.NET处理管道初谈

原文地址:https://www.cnblogs.com/jbdxbl/p/9348239.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved