廊坊网站建设方案网站建设项目需求分析报告

pingmian/2025/10/11 13:01:02/文章来源:
廊坊网站建设方案,网站建设项目需求分析报告,网站建设实验周志与总结,外包兼职平台在本文中#xff0c;我们将了解不同的事件#xff0c;ASP.NET 应用程序的生命周期以浏览器向 Web 服务器#xff08;对于 ASP.NET 应用程序#xff0c;通常为 IIS#xff09;发送请求为起点#xff0c;直至将请求结果返回至浏览器结束。在这个过程中#xff0c;首先我们…在本文中我们将了解不同的事件ASP.NET 应用程序的生命周期以浏览器向 Web 服务器对于 ASP.NET 应用程序通常为 IIS发送请求为起点直至将请求结果返回至浏览器结束。在这个过程中首先我们需要了解ASP.NET请求的2个大致的步骤。其次我们将详细了解 httphandler httpmodule和 asp.net 页面对象Page中不同的事件的执行顺序逻辑。 二个步骤的过程 asp.net请求处理2步的过程如下所示用户发送一个请求到IIS 服务器 1、asp.net创建一个运行时可以处理请求。换句话说它创建应用程序对象请求响应和上下文对象处理请求。 2、运行时一旦被创建请求处理通过一系列的事件处理模块Handler处理和页面对象。简称MHPM (Module, handler, page and Module event)。 ASP.NET 应用程序生命周期的各个阶段 步骤1用户从 Web 服务器请求应用程序资源 ASP.NET 应用程序的生命周期以浏览器向 Web 服务器对于 ASP.NET 应用程序通常为 IIS发送请求为起点。ASP.NET 是 Web 服务器下的 ISAPI 扩展。Web 服务器接收到请求时会对所请求的文件的文件扩展名进行检查确定应由哪个 ISAPI 扩展处理该请求然后将该请求传递给合适的 ISAPI 扩展。ASP.NET 处理已映射到其上的文件扩展名如 .aspx、.ascx、.ashx 和 .asmx。 步骤2ASP.NET 接收对应用程序的第一个请求 当 ASP.NET 接收到对应用程序中任何资源的第一个请求时名为 ApplicationManager 的类会创建一个应用程序域。应用程序域为全局变量提供应用程序隔离并允许单独卸载每个应用程序。在应用程序域中将为名为 HostingEnvironment 的类创建一个实例该实例提供对有关应用程序的信息如存储该应用程序的文件夹的名称的访问。 步骤3为每个请求创建 ASP.NET 核心对象 创建了应用程序域并对 HostingEnvironment 对象进行了实例化之后ASP.NET 将创建并初始化核心对象如 HttpContext、HttpRequest 和 HttpResponse。HttpContext 类包含特定于当前应用程序请求的对象如 HttpRequest 和 HttpResponse 对象。HttpRequest对象包含有关当前请求的信息包括 Cookie 和浏览器信息。HttpResponse 对象包含发送到客户端的响应包括所有呈现的输出和 Cookie。 步骤4将 HttpApplication 对象分配给请求初始化所有核心应用程序对象之后将通过创建 HttpApplication 类的实例启动应用程序。如果应用程序具有 Global.asax 文件则 ASP.NET 会创建 Global.asax 类从 HttpApplication 类派生的一个实例并使用该派生类表示应用程序。 注第一次在应用程序中请求 ASP.NET 页或进程时将创建 HttpApplication 的一个新实例。不过为了尽可能提高性能可对多个请求重复使用 HttpApplication 实例。 步骤5 由 HttpApplication 管线处理请求 MHPM (Module, handler, page and Module event)。 使用MHPM (Module, handler, page and Module event) 事件处理请求 一旦 HttpApplication对象创建在处理该请求时将由 HttpApplication 类执行。我们来了解下HttpModule HttpHandlers。 1、如果你想通过*.aspx*.html文件来处理程序逻辑那么你需要使用HttpHandler,换句话说httphandler是一个扩展的处理器。 2、如果你想使用ASP.NET管道来处理程序逻辑你需要使用HttpModule 换句话说httpmodule是一个事件处理器。 如何处理请求。mhpm有4个重要的步骤 步骤1M: HttpModule客户端开始请求处理。在asp.net引擎和httpmodule中的事件可以用来处理用户自己定义的逻辑。有6个重要的事件你可以在你的页面对象被创建之前调用 Begin Requestauthenticaterequestauthorizerequestresolverequestcacheacquirerequeststate与prerequesthandlerexecute。 步骤2H: ‘HttpHandler’一旦上述6个事件被执行完asp.net引擎调用processrequest事件如果已实现httphandler在您的项目。 步骤3P: ASP.NET page一旦httphandler执行asp.net页面对象被创建。而asp.net页面对象被创建Page对象的事件将被调用这可以帮助我们页面中定制自定义逻辑的处理。有6个重要的事件Init, Load, validate, event, render ,unload 简称 SILVER   S – Start (does not signify anything as such just forms the word) , I – (Init) , L (Load) , V (Validate), E (Event) and R (Render)。步骤4M: HttpModule一旦页面对象是执行和从内存中卸载httpmodule提供网页执行事件可以用来注入自定义处理逻辑。有4个重要的后处理事件postrequesthandlerexecutereleaserequeststateupdaterequestcache与endrequest。 事件详细介绍 部分Event事件Description描述HttpModuleBeginRequest在 ASP.NET 响应请求时作为 HTTP 执行线链中的第一个事件发生。BeginRequest 事件发出信号表示创建任何给定的新请求。此事件始终被引发并且始终是请求处理期间发生的第一个事件。HttpModuleAuthenticateRequest当安全模块已建立用户标识时发生。AuthenticateRequest 事件发出信号表示配置的身份验证机制已对当前请求进行了身份验证。HttpModuleAuthorizeRequest安全模块已验证用户授权时发生。AuthorizeRequest 事件发出信号表示 ASP.NET 已对当前请求进行了授权。HttpModuleResolveRequestCache在 ASP.NET 完成授权事件以使缓存模块从缓存中为请求提供服务后发生从而绕过事件处理程序例如某个页或 XML Web services的执行。HttpModuleAcquireRequestState当 ASP.NET 获取与当前请求关联的当前状态如会话状态时发生。AcquireRequestState 事件在创建了事件处理程序之后引发。HttpModulePreRequestHandlerExecute恰好在 ASP.NET 开始执行事件处理程序例如某页或某个 XML Web services前发生。HttpHandlerProcessRequestHttphandler逻辑被执行。 在本节中我们会写需要将每页扩展执行的逻辑。PageInit OnInit 方法执行创建 Page 实例所需的初始化和设置步骤。在页生命周期的此阶段中页中声明的服务器控件都已初始化为默认状态但每个控件的视图状态尚未填充。在 Page_Init 阶段中页中的控件不能访问该页的其他服务器控件无论其他控件是子控件还是父控件。不一定会创建其他服务器控件也不一定能够访问它们PageLoadASP.NET控件完成加载你写的UI操作逻辑或任何其他逻辑在这里。PageValidate如果你有你的页面上有验证逻辑这里检查是否符合验证。 Render将页面最终的输出发送到浏览器如果你想做出一些最终的HTML的变化这是输出到浏览器你可以在这里输入你的HTML的逻辑。PageUnload页面对象从内存中卸载。HttpModulePostRequestHandlerExecute在 ASP.NET 事件处理程序例如某页或某个 XML Web service执行完毕时发生。HttpModuleReleaserequestState在 ASP.NET 执行完所有请求事件处理程序后发生。该事件将使状态模块保存当前状态数据。引发 ReleaseRequestState 事件以后应用程序以该请求结束并发出 ASP.NET 信号以存储该请求状态。HttpModuleUpdateRequestCacheBefore you end, if you want to update your cache.结束之前如果您想更新您的高速缓存。HttpModuleEndRequest当 ASP.NET 执行完事件处理程序以使缓存模块存储将用于从缓存为后续请求提供服务的响应时发生。  演示代码   在这段代码中我们创建HttpModule 和Httphandler  添加所有请求响应的事件 下面用 HttpModule Httphandler  跟踪所有活动并把它添加到一个全局性的集合变量中。public class clsHttpModule : IHttpModule{private HttpApplication httpApp;public static ArrayList objArrayList new ArrayList();public clsHttpModule(){}public void Dispose(){}public void Init(HttpApplication context){this.httpApp context;httpApp.Context.Response.Clear();objArrayList.Clear();objArrayList.Add(httpModule:Init);httpApp.AuthenticateRequest new EventHandler(OnAuthentication);httpApp.AuthorizeRequest new EventHandler(OnAuthorization);httpApp.BeginRequest new EventHandler(OnBeginrequest);httpApp.EndRequest new EventHandler(OnEndRequest);httpApp.ResolveRequestCache new EventHandler(OnResolveRequestCache);httpApp.AcquireRequestState new EventHandler(OnAcquireRequestState);httpApp.PreRequestHandlerExecute new EventHandler(OnPreRequestHandlerExecute);httpApp.PostRequestHandlerExecute new EventHandler(OnPostRequestHandlerExecute);httpApp.ReleaseRequestState new EventHandler(OnReleaseRequestState);httpApp.UpdateRequestCache new EventHandler(OnUpdateRequestCache);}void OnUpdateRequestCache(object sender, EventArgs a){objArrayList.Add(httpModule:OnUpdateRequestCache);}void OnReleaseRequestState(object sender, EventArgs a){objArrayList.Add(httpModule:OnReleaseRequestState);}void OnPostRequestHandlerExecute(object sender, EventArgs a){objArrayList.Add(httpModule:OnPostRequestHandlerExecute);}void OnPreRequestHandlerExecute(object sender, EventArgs a){objArrayList.Add(httpModule:OnPreRequestHandlerExecute);}void OnAcquireRequestState(object sender, EventArgs a){objArrayList.Add(httpModule:OnAcquireRequestState);}void OnResolveRequestCache(object sender, EventArgs a){objArrayList.Add(httpModule:OnResolveRequestCache);}void OnAuthorization(object sender, EventArgs a){objArrayList.Add(httpModule:OnAuthorization);}void OnAuthentication(object sender, EventArgs a){objArrayList.Add(httpModule:AuthenticateRequest);}void OnBeginrequest(object sender, EventArgs a){objArrayList.Add(httpModule:BeginRequest);}void OnEndRequest(object sender, EventArgs a){objArrayList.Add(httpModule:EndRequest);objArrayList.Add(hr);foreach (string str in objArrayList){httpApp.Context.Response.Write(str br);}}} webconfig中配置 httpModulesadd nameclsHttpModule typeWebDemo1.Common.clsHttpModule//httpModules 页面第一次加载效果 点击button按钮后 HttpModule HttpModule通过在某些事件中注册把自己插入ASP.NET请求处理管道。当这些事件发生的时候ASP.NET调用对相应的HTTP模块这样该模块就能处理请求了。 常用操作 1、向每个页面动态添加一些备注或说明性的文字2、判断用户登录 如果定义了多个HttpModule在web.config文件中引入自定义HttpModule的顺序就决定了多个自定义HttpModule在处理一个HTTP请求的接管顺序。 HttpHandlerHttpHandler是HTTP请求的处理中心真正地对客户端请求的服务器页面做出编译和执行并将处理过后的信息附加在HTTP请求信息流中再次返回到HttpModule中。HttpHandler与HttpModule不同一旦定义了自己的HttpHandler类那么它对系统的HttpHandler的关系将是“覆盖”关系。 为了验证请求是否进入HttpHandler 我们可以在WebConfig中 加入 add verb* path*.aspx typeWebDemo1.Common.clsHttpHandler,WebDemo1/ 调试程序看看。 综上我们可以总计出一张图 ASP.NET页面事件      在上面的部分我们已经看到了一个ASP.NET页面完整的请求事件。 最重要的部分之一是ASP.NET页面我们没有详细讨论相同。我们详细讨论下ASP.NET的页面事件。任何ASP.NET页面中有2个部分 如图 注意 大部分的开发者直接使用page_load方法的一切这不是一个好的做法。例如 填充控件设置视图状态应用主题等这些都是发生在页面上的负荷。因此我们可以在适当的事件添加适当的逻辑这将真正使你的代码整洁 符合逻辑。 序号事件控件初始化状态 是否可用表单数据是否可用什么逻辑可以写在这里 1InitNoNoNo OnInit 方法执行创建 Page 实例所需的初始化和设置步骤。在页生命周期的此阶段中页中声明的服务器控件都已初始化为默认状态但每个控件的视图状态尚未填充。在 Page_Init 阶段中页中的控件不能访问该页的其他服务器控件无论其他控件是子控件还是父控件。不一定会创建其他服务器控件也不一定能够访问它们。 2Load view stateNot guaranteedYesNot guaranteed您可以访问视图状态和任何同步逻辑 3PostBackdataNot guaranteedYesYes你可以访问表单数据。 4LoadYesYesYes绑定控件 等等。。。 5ValidateYesYesYes如果你的页面有验证或者你想为您的网页执行验证。 6EventYesYesYes如果这是通过点击一个按钮或下拉的变化那么相对应的事件将被执行。 7Pre-renderYesYesYes如果你想在这些控件视图状态最后保存之前修改UI对象的结构或属性值。 8Save view stateYesYesYes一旦所有服务器控件的变化完成这一事件控制数据保存在视图状态。 9RenderYesYesYes如果你想添加一些自定义的HTML输出。 10UnloadYesYesYes 你可以在这里做任何清理。   【转自】https://www.cnblogs.com/suizhouqiwei/archive/2012/08/15/2637775.html转载于:https://www.cnblogs.com/bad-man/p/7988826.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/88671.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电子商务网站设计方案广州企业网站建设推荐

发布时间:2024/05/22 如果您有适合我的项目机会给到我,这是我的简历:Resume 思路: 思路原理:实践发现href为null或者" "的时候是不起作用的 将href属性绑定的固定路径设置为响应式数据变量a,a初…

创建公司网站需要注意什么百度一下你就知道下载安装

在视频编辑和处理的领域,转换格式是一项常见的任务。在某些编辑和发布工作中,可能需要使用WMV格式。提前将素材转换为WMV可以节省在编辑过程中的时间和精力。从MP4到WMV的批量转换,不仅能使视频素材在不同的平台和设备上得到更好的兼容性&…

南海网站设计专业简历

文章目录 Mybatis-Plus 框架基础引入 maven 依赖定义实体类,并标注注解定义 Mapper 接口,要求继承自特定父接口使用 MapperScan 注解,扫描 mapper 接口所在位置验证 Mybatis-Plus 框架基础 MyBatis-Plus 是 MyBatis 的一种增强框架&#xff…

高新区网站建设 意义网站图片上字体动态怎么做的

js事件一、绑定事件1、html绑定2、el属性绑定3、el函数绑定4、事件捕获与冒泡5、js常见事件称名二、阻止事件1、event.stopPropagation()2、return false3、event.preventDefault();4、兼容写法一、绑定事件 1、html绑定 <div onclick"alert(click!)">click&…

门户网站如何制作网站域名所有权 查询

二叉树 二叉树是n个有限元素的集合&#xff0c;该集合或者为空、或者由一个称为根&#xff08;root&#xff09;的元素及两个不相交的、被分别称为左子树和右子树的二叉树组成&#xff0c;是有序树。当集合为空时&#xff0c;称该二叉树为空二叉树。在二叉树中&#xff0c;一个…

温州做网站公司哪家好最新新闻热点事件2023摘抄

抖音在国内是比较知名的短视频运营商&#xff0c;也有很大的流量市场。这块优化好了&#xff0c;不管是对于用户还是企业来说&#xff0c;在品牌宣传上来说&#xff0c;作用还是蛮大的。抖音优化和电脑端优化&#xff0c;还是有所区别的&#xff0c;这里参考的是点赞数、评论以…

旅游景区网站建设方案文档网站SEM优化如何做

我将uart_done&#xff08;出问题的信号&#xff09;的变量类型设为reg了&#xff0c;也就是我是reg uart_done这个信号的&#xff0c;这样做是错误的&#xff0c;哪怕你在接收模块确实定义的是reg类型&#xff0c;但是在顶层模块的时候&#xff0c;它可以视为是一条单纯的线而…

网站首页效果图怎么做怎么开通网络

【习题】三方库 判断题 三方组件是开发者在系统能力的基础上进行了一层具体功能的封装&#xff0c;对其能力进行拓展的工具 。 正确(True) 可以通过ohpm uninstall 指令下载指定的三方库 错误(False) lottie使用loadAnimation方法加载动画。 正确(True) 单选题 通过ohpm安…

做网站文章要一篇一篇的写吗北京网站设计制作飞沐

概念 决策树是一种树形结构 树中每个内部节点表示一个特征上的判断&#xff0c;每个分支代表一个判断结果的输出&#xff0c;每个叶子节点代表一种分类结果 决策树的建立过程 1.特征选择&#xff1a;选取有较强分类能力的特征。 2.决策树生成&#xff1a;根据选择的特征生…

饰品 东莞网站建设wordpress qq登录

git rebase 命令简介 git rebase命令允许我们轻松地更改一系列提交&#xff0c;修改存储库的历史记录。我们可以重新排序、编辑或合并提交。一般常用git rebase来合并当前分支的多个commit记录&#xff08;压缩&#xff09;以及避免出现分支的交叉合并&#xff08;变基&#x…

蚌埠网站关键词优化阿里巴巴企业网站怎么做

之前写的环行缓冲区文章柔性数组和环形队列之间的故事C语言&#xff0c;环形队列循环缓冲区是嵌入式软件工程师在日常开发过程中的关键组件。多年来&#xff0c;互联网上出现了许多不同的循环缓冲区实现和示例。我非常喜欢这个模块&#xff0c;可以GitHub上找到这个开源的 CBUF…

唐山企业网站建设公司个人网站开发技术

题干&#xff1a; 单测试点时限: 2.0 秒 内存限制: 1024 MB “我把房门上锁&#xff0c;并非为了不让她进去&#xff0c;而是为了防止自己逃到她身边”。 她又被数学难住了。QQ 小方当然是不会对女生说”不”的。 她的数学题是这样的&#xff0c;她得到了一个十进制大整数…

如何做淘宝网网站域名域名跳转wordpress

1. 对分布式事务的了解 分布式事务是企业集成中的一个技术难点&#xff0c;也是每一个分布式系统架构中都会涉及到的一个东西&#xff0c; 特别是在微服务架构中&#xff0c;几乎可以说是无法避免。 首先要搞清楚&#xff1a;ACID、CAP、BASE理论。 ACID 指数据库事务正确执行…

网站建设中所涉及的所有链接建设北京同仁医院眼科医生免费咨询

C语言&#xff0c;用函数封装&#xff1a;16进制打印unsigned char *p指向的内存&#xff0c;长度为int l。16个字节&#xff0c;换一次行。16个字节用一个字符串缓存&#xff0c;一次打印。 以下是一个使用函数封装的C语言代码&#xff0c;用于以16进制格式打印unsigned char …

江苏网站建站系统哪家好宁波网站建设运营

拥有一部适合办公的笔记本电脑&#xff0c;可以成为商务人士忙碌工作中强有力的支持。联想旗下的ThinkPad 系列笔记本电脑&#xff0c;一直秉持为高端商务人士服务的理念&#xff0c;以稳定、流畅、安全的使用体验得到广泛认可。其中的ThinkPad T14 锐龙版&#xff0c;更是有着…

网站理念中文企业网站设计欣赏

不良事件和条件可能会中断系统&#xff0c;导致系统无法提供必要的功能和服务。正如我在本系列的前几篇文章中所概述的那样&#xff0c;韧性是大多数系统的一个基本质量属性&#xff0c;因为它们提供了关键的能力和服务&#xff0c;尽管存在着不可避免的困难&#xff0c;但这些…

phpcms 适合什么的网站导购类网站如何做会员互动

“ Advanced ”选项卡 “ Advanced ” &#xff08; 高级 &#xff09; 选项卡如下图所示。 在“ Advanced ”选项卡中提供了以下字段 &#xff1a; • “ Report ” &#xff08; 报告 &#xff09;&#xff1a; 选中“ Advanced ”选项卡中的“ Cells to Analyze ” &…

运城做网站哪家好深圳专业网站建设定制

Android11适配已安装应用列表 之前做过已安装应用列表的适配&#xff0c;最近国内版SDK升级到33和隐私合规遇到很多问题&#xff0c;于是把已安装应用列表记录一下&#xff1a; 1、在Android11及以上的适配&#xff1a; package com.example.requestinsttallapplistdemoimpo…