CH10模块和处理程序._第1页
CH10模块和处理程序._第2页
CH10模块和处理程序._第3页
CH10模块和处理程序._第4页
CH10模块和处理程序._第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第十章 模块和处理程序 回顾 用户控件的作用是什么? 用户控件和Web窗体有什么区别? 在用户控件中使用事件的步骤是什么? 如何动态加载用户控件? 本章目标 了解模块和处理程序 掌握模块的制作和使用 熟练掌握处理程序的制作和使用 HttpModule和HttpHandler HttpHandler 处理程序处理程序 Http运行时运行时 Http模块模块 Http模块模块 Http模块模块 Http请求请求 响应响应 请求的终点请求的终点 最终的处理最终的处理 可能经历多个模块,可能经历多个模块, 层次层次“过滤过滤” 原路返回原路返回 IIS6.0 IIS7.0 HttpModule pub

2、lic class MyModule : IHttpModule public void Dispose() /此处放置清除代码。 public void Init(HttpApplication context) / 下面是如何处理 LogRequest 事件并为其 / 提供自定义日志记录实现的示例 访问当前的 HttpApplication环境 HttpApplication事件 事件说明 AcquireRequestState准备获得当前HTTP请求的会话状态时触发 AuthenticateRequest准备验证用户身份时触发 AuthorizeRequest准备给用户授予资源的访问权限

3、时触发 BeginRequestBeginRequest收到一个新的收到一个新的HTTPHTTP请求时触发请求时触发 Disposed完成HTTP请求时触发 EndRequestEndRequest在把响应内容发送给客户端之前触发在把响应内容发送给客户端之前触发 Error在处理HTTP请求时发生未处理的异常时触发 PostRequestHandlerExecute在HTTP处理程序执行完毕后触发 PreRequestHandlerExecute 在开始执行HTTP请求的处理程序之前触发。在这个事件之后, ASP.NET会把请求发送给合适的HTTP处理程序 PreSendRequestCont

4、ent 在把响应内容发送给客户端之前触发。这个事件可以修改响应内容, 之后把它发送给客户端。可以使用这个事件给页面输出添加所有页 面中都有的公共内容。 PreSendRequestHeaders 在把HTTP响应报头发送给客户端之前触发。这个事件可以修改报头, 之后把它发送给客户端。可以使用这个事件给报头添加cookie金额 定制数据 自定义HttpModule 自定义HttpModule 编写自定义HttpModule类 配置应用程序 public class MyModule : IHttpModule private HttpApplication app = null; public

5、void Init(HttpApplication context) app = context; app.EndRequest +=new EventHandler(app_EndRequest); protected void app_EndRequest(object sender, EventArgs e) app.Context.Response.Write(信息来自MyModule,时间: + DateTime.Now.ToLongDateString() + : + DateTime.Now.ToLongTimeString(); HttpHandler 位于请求处理管道的末尾

6、是整个请求处理的终点 通常使用标准的ASP.NET页面提供的内容以减少系 统开销 典型的应用就是根据动态查询字符串的数据来处理 图像 一般处理程序 public class MyHandler : IHttpHandler public void ProcessRequest(HttpContext context) context.Response.ContentType = text/plain; context.Response.Write(Hello World); public bool IsReusable get return false; 继承IHttpHandler接口 实现

7、ProcessRequest方法 实现IsReusable属性 修改修改ContentType报头的值报头的值 可以通过可以通过HttpHandler返回不同类型的响应结果返回不同类型的响应结果 指定Handler方法 思路分析 获得URL传的参数并查找相对应的封面图片 将水印“粘贴”在封面图片的左上角 修改程序的输出类型,并将组合出的新图片输出 修改页面中访问该图片的路径。 string path = context.Server.MapPath(Image + context.Request.Paramsid + .jpg); Image img = Image.FromFile(path

8、); Graphics g = Graphics.FromImage(img); SolidBrush brush = new SolidBrush(Color.Blue); g.DrawString(南方影视网, new Font(宋体, 12f), brush, 30, 30); context.Response.ContentType = image/jpeg; img.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpe g); context.Response.End(); a href= target=_blank 总结 了

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论