分享web开发知识

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

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

HTTP请求管道事件BeginRequest和EndRequest

发布时间:2023-09-06 01:49责任编辑:沈小雨关键词:暂无标签

这是一个测试示例,代码如下:

using System;using System.Collections.Generic;using System.Linq;using System.Web;namespace WebApplication1{ ???public class MyHttpModule:IHttpModule ???{ ???????public void Init(HttpApplication context) ???????{ ???????????context.EndRequest += context_EndRequest; ???????????context.BeginRequest += context_BeginRequest; ???????} ???????void context_BeginRequest(object sender, EventArgs e) ???????{ ???????????HttpApplication app = (HttpApplication)sender; ???????????HttpContext _context = app.Context; ???????????_context.Response.Write("<script type=\"text/javascript\">alert(‘1‘);document.write(‘context_BeginRequest‘);</script>"); ???????????//_context.Response.End(); ???????????//string mimeStr = _context.Response.ContentType; ???????????//_context.Response.Write("context_BeginRequest-mime:" + mimeStr); ???????} ???????void context_EndRequest(object sender, EventArgs e) ???????{ ???????????HttpApplication app = (HttpApplication)sender; ???????????HttpContext _context = app.Context; ???????????_context.Response.Write("<script type=\"text/javascript\">alert(‘2‘);document.write(‘context_EndRequest‘)</script>"); ???????????//_context.Response.End(); ???????????//string mimeStr = _context.Response.ContentType; ???????????//_context.Response.Write("context_EndRequest-mime:" + mimeStr); ???????} ???????public void Dispose() ???????{ ???????} ???}}

 运行输出:

查看源码:

结论:
BeginRequest是在给客户端输出HTML内容前调用;EndRequest是在给客户端输出HTML内容后调用;
页面的Page_Load事件是请求进入页面首先执行的,然后才输出HTML内容给客户端;

扩展内容(HttpApplication的处理管道19个事件):
1.BeginRequest:asp.net开始处理请求的第一个事件,表示处理的开始。
2.AuthenticateRequest:验证请求,一般用来取得请求的用户信息。
3.PostAuthenticateRequest:已经获取请求的用户信息。
4.AuthorizeRequest:授权,一般用来检查用户的请求是否获得权限。
5.PostAuthorizeRequest:用户请求已经获得授权。
6.ResolveRequestCache:获取以前处理缓存的处理结果,如果以前缓存过,那么,不用再进行请求的处理工作,直接返回缓存的结果。
7.PostResolveRequestCache:已经完成缓存的处理工作。
8.PostMapRequestHandler:已经根据用户的请求,创建了请求的处理器对象。
9.AcquireRequestState:取得请求的状态,一般用于session
10.PostAcquireRequestState:已经获得了session
11.PreRequestHandlerExecute:准备执行处理程序。
12.PostRequestHandlerExecute:已经执行了处理程序
13.ReleaseRequestState:释放请求的状态。
14.PostReleaseRequestState:已经释放了请求的状态。
15.UpdateRequestCache:更新缓存。
16.PostUpdateRequestCache:已经更新了缓存。
17.LogRequest:请求的日志操作
18.PostLogRequest:已经完成请求的日志操作。
19.EndRequest:本次请求处理完成。

参考资料:
http://www.cnblogs.com/xhwy/archive/2012/05/20/2510178.html
https://www.cnblogs.com/wupeiqi/archive/2013/03/05/2944354.html

HTTP请求管道事件BeginRequest和EndRequest

原文地址:https://www.cnblogs.com/zhaow/p/8819464.html

知识推荐

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