Page 事件说明及事件执行顺序

Page 事件说明及事件执行顺序

 


  名称说明
公共事件AbortTransaction当用户中止事务时发生。 (继承自 TemplateControl。)
公共事件CommitTransaction当事务完成时发生。 (继承自 TemplateControl。)
公共事件DataBinding当服务器控件绑定到数据源时发生。 (继承自 Control。)
公共事件Disposed当从内存释放服务器控件时发生,这是请求 ASP.NET 页时服务器控件生存期的最后阶段。 (继承自 Control。)
公共事件Error当引发未经处理的异常时发生。 (继承自 TemplateControl。)
公共事件Init当服务器控件初始化时发生;初始化是控件生存期的第一步。 (继承自 Control。)
公共事件InitComplete在页初始化完成时发生。
公共事件Load当服务器控件加载到 Page 对象中时发生。 (继承自 Control。)
公共事件LoadComplete在页生命周期的加载阶段结束时发生。
公共事件PreInit在页初始化开始时发生。
公共事件PreLoad在页 Load 事件之前发生。
公共事件PreRender在加载 Control 对象之后、呈现之前发生。 (继承自 Control。)
公共事件PreRenderComplete在呈现页内容之前发生。
公共事件SaveStateComplete在页已完成对页和页上控件的所有视图状态和控件状态信息的保存后发生。
公共事件Unload当服务器控件从内存中卸载时发生。 (继承自 Control。)

 

 

ASp.NET 2.0中Page事件的执行顺序

 

Page 执行中将按照如下顺序激活事件:

Page.PreInit
Page.Init
Page.InitComplite
Page.PreLoad
Page.Load
Page.LoadComplete
Page.PreRender
Page.PreRenderComplete

如果页面从令一个页面继承,如BasePage:System.Web.UI.Page,在BasePage中做了一些扩展,如权限检查,而其他页面从BasePage继承,则BasePage和最终Page的事件激活顺序是:

UI.PreInit
Page.PreInit
UI.Init
Page.Init
UI.InitComplite
Page.InitComplite
UI.PreLoad
Page.PreLoad
UI.Load
Page.Load
UI.LoadComplete
Page.LoadComplete
UI.PreRender
Page.PreRender
UI.PreRenderComplete
Page.PreRenderComplete

如果使用了MasterPage,则MasterPage中的事件和ContentPage中的事件按照下面顺序激活:

ContentPage.PreInit
Master.Init
ContentPage.Init
ContentPage.InitComplite
ContentPage.PreLoad
ContentPage.Load
Master.Load
ContentPage.LoadComplete
ContentPage.PreRender
Master.PreRender
ContentPage.PreRenderComplete

更进一步,如果ContentPage继承BasePage,那么,各事件的执行顺序将变成:

UI.PreInit
ContentPage.PreInit
Master.Init
UI.Init
ContentPage.Init
UI.InitComplite
ContentPage.InitComplite
UI.PreLoad
ContentPage.PreLoad
UI.Load
ContentPage.Load
Master.Load
UI.LoadComplete
ContentPage.LoadComplete
UI.PreRender
ContentPage.PreRender
Master.PreRender
UI.PreRenderComplete
ContentPage.PreRenderComplete

 

转载于:https://www.cnblogs.com/duwx/archive/2010/08/24/1807125.html

Spring MVC 框架的工作执行流程如下: 1. 客户端发送请求到 DispatcherServlet。 2. DispatcherServlet 根据请求信息调用 HandlerMapping,解析出 HandlerExecutionChain 对象,其中包含 HandlerInterceptor 数组和 Controller 对象。 3. DispatcherServlet 根据 HandlerExecutionChain 中的 HandlerInterceptor 数组,按照顺序执行每个拦截器的 preHandle 方法,若有拦截器返回 false,则执行流程中止,返回错误信息。 4. DispatcherServlet 调用 Controller 的方法处理请求,返回 ModelAndView 对象。 5. DispatcherServlet 根据 ModelAndView 中的 ViewName,调用 ViewResolver 解析出 View 对象。 6. DispatcherServlet 调用 View 的 render 方法,将模型数据渲染到视图中。 7. DispatcherServlet 根据 HandlerExecutionChain 中的 HandlerInterceptor 数组,按照逆序执行每个拦截器的 postHandle 方法。 8. DispatcherServlet 返回响应给客户端。 下面是一个简单的 Spring MVC 示例: 1. 配置 DispatcherServlet 和 HandlerMapping: ```xml <servlet> <servlet-name>dispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/config/spring-mvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcherServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> ``` 2. 编写 Controller 类: ```java @Controller public class HelloController { @RequestMapping("/hello") public ModelAndView hello() { ModelAndView model = new ModelAndView("hello"); model.addObject("message", "Hello, world!"); return model; } } ``` 3. 编写 ViewResolver 类: ```xml <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/views/" /> <property name="suffix" value=".jsp" /> </bean> ``` 4. 编写 JSP 视图: ```jsp <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Hello</title> </head> <body> <h1>${message}</h1> </body> </html> ``` 这样,当客户端发送请求到 /hello 路径时,Spring MVC 框架会调用 HelloController 的 hello 方法处理请求,并返回 ModelAndView 对象,其中包含视图名称和模型数据。DispatcherServlet 会根据视图名称通过 ViewResolver 解析出 View 对象,并调用其 render 方法将模型数据渲染到视图中,最终返回响应给客户端。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值