北大青鸟60课程net_第1页
北大青鸟60课程net_第2页
北大青鸟60课程net_第3页
北大青鸟60课程net_第4页
北大青鸟60课程net_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

1、ASP.NET运行时模型运行时模型 第一章第一章课程地位每阶段已包括:项目实战、每阶段已包括:项目实战、COTCOT课程课程 总课时:总课时: 10081008C# OOPC# OOPJavaScriptJavaScriptT-SQLT-SQLJava OOPJava OOPS2350Y2344JSPJSPS2S2:JavaJava阶段项目阶段项目预备课程预备课程WinFormsWinFormsLogic JavaLogic JavaS1314S1S1:.NET.NET阶段项目阶段项目ASP.NETASP.NETHibernateHibernateN-TierN-TierAjaxAjaxSpr

2、ingSpringStrutsStrutsHTMLHTMLC#C#NTCNTCProjectProject知识知识Y2Y2:.NET.NET毕业设计项目毕业设计项目COTCOTCOTCOTCOTCOTY2Y2:JavaJava毕业设计项目毕业设计项目目标岗位标准手册目标岗位标准手册就业技能结构图本门课程目标学完本门课程后,你能够学完本门课程后,你能够深入理解深入理解ASP.NETASP.NET运行原理运行原理会开发用户控件和自定义控件会开发用户控件和自定义控件会使用会使用AjaxAjax技术构建高用户体验的技术构建高用户体验的Web应用应用会使用缓存优化程序性能会使用缓存优化程序性能会使用会使

3、用Web Service技术构建分布式系统技术构建分布式系统课程项目展示第三波书店升级版第三波书店升级版博客系统升级版博客系统升级版演示课程项目演示课程项目相关课程回顾ASP.NET的运行机制?的运行机制?.NET 中委托和事件的作用?中委托和事件的作用?ASP.NET 中常用的控件?中常用的控件?预习检查用什么技术可以实现页面静态化?用什么技术可以实现页面静态化?如何让如何让IIS 处理静态资源请求?处理静态资源请求?本章任务实现第三波书店的数字水印效果实现第三波书店的数字水印效果实现第三波书店的静态页功能实现第三波书店的静态页功能本章目标理解理解ASP.NET运行时机制运行时机制 掌握使用

4、掌握使用HttpHandler 显示图片数字水印显示图片数字水印掌握使用掌握使用HttpHandler 将动态页面静态化将动态页面静态化了解简单了解简单HttpModule 的编写的编写 会在会在IIS上配置资源文件和上配置资源文件和ISAPI 的映射的映射在图片上增加站点标在图片上增加站点标识,能够很好地保护识,能够很好地保护著作权,防止他人盗著作权,防止他人盗用图片用图片数字水印简介资源准备资源准备水印图片水印图片默认图片默认图片采用图片形式的水印,需要一采用图片形式的水印,需要一个水印图片个水印图片当图片封面图片不存在时,当图片封面图片不存在时,显示该图片,此时就不需要显示该图片,此时就

5、不需要在图片上绘制水印在图片上绘制水印数字水印思路分析实现方式实现方式直接编辑每张图片直接编辑每张图片编程实现批量编辑图片编程实现批量编辑图片在显示图片时,动态添加数字水印效果在显示图片时,动态添加数字水印效果需要大量的人力需要大量的人力节省人力,效率高,但原始图节省人力,效率高,但原始图片丢失了片丢失了使用使用HttpHandler数字水印思路分析请求的终点请求的终点 最终的处理最终的处理 ASP.NET 运行时和 HttpHandler 可能经历多个模块,可能经历多个模块, 层次层次“过滤过滤” 原路返回原路返回 操作演示:创建操作演示:创建HttpHandler程序程序using Sys

6、tem;using System.Web;public class Handler : IHttpHandler public void ProcessRequest (HttpContext context) context.Response.ContentType = text/plain; context.Response.Write(Hello World); public bool IsReusable get return false; 实现实现IsReusable属性属性实现实现IHttpHandler 接口接口实现实现ProcessRequest()方法方法HttpContex

7、t 对象,提供对用于为对象,提供对用于为 HTTP 请求提供服务的内部服务器请求提供服务的内部服务器对象(如对象(如 Request、Response、Session 和和 Server)的引用)的引用 关键代码展示 .ashx文件的方式实现数字水印思路分析文件的方式实现数字水印思路分析获得获得URL传的参数传的参数ISBN根据根据ISBN查找相对应的封面图片查找相对应的封面图片将数字水印图片将数字水印图片“粘贴粘贴”在封面图片的右下角在封面图片的右下角修改程序的输出类型,并将组合出的新图片输出修改程序的输出类型,并将组合出的新图片输出修改页面中访问该图片的路径修改页面中访问该图片的路径指定H

8、andler方式实现数字水印动态输出图片动态输出图片创建创建HttpHandler程序程序编写处理代码编写处理代码修改图书列表页面的封面路径修改图书列表页面的封面路径查看效果查看效果指定Handler方式实现数字水印演示示例演示示例1:动态处理输出图片:动态处理输出图片程序输出图片代码程序输出图片代码 .public class BookCover : IHttpHandler public void ProcessRequest (HttpContext context) . .context.Response.ContentType = image/jpeg; image.Save(con

9、text.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);image.Dispose( );context.Response.End( ); .设置输出格式设置输出格式 输出图片文件输出图片文件 将图片保存在输出流将图片保存在输出流 关键代码展示使用使用.ashx方式,需要修改所有访问封面图片的路方式,需要修改所有访问封面图片的路径,太麻烦,能否直接访问图片,达到添加数字径,太麻烦,能否直接访问图片,达到添加数字水印的效果?水印的效果?文件夹中的文件夹中的封面原图封面原图通过站点访问该文件就显通过站点访问该文件就显

10、示水印效果示水印效果全局Handler方式实现数字水印实现思路分析实现思路分析修改配置信息,将所有对修改配置信息,将所有对.JPG内容的访问转到内容的访问转到HttpHandler处理程序处理程序获得访问请求,得到用户访问的图片路径获得访问请求,得到用户访问的图片路径根据请求的路径,查找相对应的封面图片根据请求的路径,查找相对应的封面图片将数字水印图片将数字水印图片“粘贴粘贴”在封面图片的右下角在封面图片的右下角修改程序的输出类型,并将组合出的新图片输出修改程序的输出类型,并将组合出的新图片输出全局Handler方式实现数字水印实现数字水印:实现数字水印:web.config中注册类,设置路径

11、中注册类,设置路径编写实现接口的类编写实现接口的类使用开发服务器访问图书封面图片使用开发服务器访问图书封面图片全局Handler方式实现数字水印演示示例演示示例2:全局动态处理输出图片:全局动态处理输出图片配置配置verb:谓词:谓词GET、POST、FTP等等path:访问路径,此处表示所有针对:访问路径,此处表示所有针对“Images/BookCovers/*.jpg”路径的的请求都将交给路径的的请求都将交给CoverHandler类进行处理类进行处理type:指定的处理程序(类):指定的处理程序(类) 指定类名,新建的类指定类名,新建的类 URL路径路径web.config 的配置pub

12、lic class CoverHandler : IHttpHandler public void ProcessRequest(HttpContext context) System.Drawing.Image Cover; if (File.Exists(context.Request.PhysicalPath) Cover = Image.FromFile(context.Request.PhysicalPath); . . else . . . .处理代码与上个例子一致处理代码与上个例子一致 获得针对封面的请求路径获得针对封面的请求路径 PhysicalPath可用于获得可用于获得HT

13、TP请求所对应的物理路径请求所对应的物理路径关键代码展示练习图书封面图片水印 需求说明需求说明分别以指定分别以指定HttpHandler 和全局和全局HttpHandler 方式方式实现图书封面图片的水印效果实现图书封面图片的水印效果 完成时间:完成时间:30分钟分钟共性问题集中讲解n常见调试问题及解决办法常见调试问题及解决办法n代码规范问题代码规范问题共性问题集中讲解共性问题集中讲解认识ISAPIISAPI 全称全称Internet Server Application Programming InterfaceISAPI 是可扩展的是可扩展的ISAPI 可管理特定资源的请求可管理特定资源的

14、请求如:如:aspx、asp 、php请求请求aspnet_isapi.dll 是一种是一种ISAPI负责处理负责处理aspx 等类型的请求等类型的请求负责创建负责创建ASP.NET 的运行时环境并和它发生交互的运行时环境并和它发生交互 处理动态请求的起点处理动态请求的起点认识ISAPIASP.NET 请求的处理过程请求的处理过程1、请求到达时,请求到达时,IIS 检查资源类型并调用检查资源类型并调用 ASP.NET ISAPI调用调用ASP.NET 辅助进程(辅助进程(IIS 6 对应为对应为w3wp.exe) 辅助进程加载辅助进程加载.NET运行时环境运行时环境 ASP.NET ISAPI

15、将请求转发给辅助进程将请求转发给辅助进程 2、辅助进程收到请求,通知辅助进程收到请求,通知ASP.NET ISAPI它将进行它将进行 处理处理 3、在辅助进程的上下文中执行处理过程在辅助进程的上下文中执行处理过程 在在.NET 运行时环境中执行运行时环境中执行 经经HttpModule和和HttpHandler 的处理的处理 4、处理完毕,通知处理完毕,通知ASP.NET ISAPI完成完成 理解 HttpModuleHttpModule 动动态请求的必经之态请求的必经之路路演示示例演示示例3:第一个:第一个 HttpModule 程序程序public class TestHttpModule

16、 : IHttpModule . public void Dispose() public void Init(HttpApplication context) context.BeginRequest += new EventHandler(context_BeginRequest); context.EndRequest += new EventHandler(context_EndRequest); private void context_BeginRequest(object sender, EventArgs e) HttpApplication applcation = send

17、er as HttpApplication; applcation.Response.Write(HttpModule 开始处理请求开始处理请求); private void context_EndRequest(object sender, EventArgs e) HttpApplication applcation = sender as HttpApplication; applcation.Response.Write(HttpModule 结束处理请求结束处理请求); 初始化方法初始化方法 关键代码展示 web.config 的配置的配置 HttpModule 应用举例URL 重写

18、重写例:例:http:/./Default.aspx?category=games&id=3重写为重写为 http:/./games/id/3.aspx 权限认证权限认证访问日志访问日志深入 HttpHandler实现实现 HttpHander 的关键点的关键点IHttpHandler接口接口IsReusable属性属性ProcessRequest()方法方法HttpContext 对象对象深入 HttpHandlerHttpHander 为为一般处理程序一般处理程序,即可以处理网站中任,即可以处理网站中任何资源的请求何资源的请求 aspx 页面也是一种处理程序页面也是一种处理程序继承

19、了继承了 IHttpHandler接口接口 HttpHandler 和和 aspx 处理程序的区别处理程序的区别 不同点不同点 HttpHandler aspx能够使用服务能够使用服务器端控件器端控件 不可以不可以 可以可以 能否使用能否使用Session 不能直接使用,需要继承不能直接使用,需要继承IRequiresSessionState 接口接口 可以可以 处理的请求处理的请求 几乎可以处理所有扩展名的请几乎可以处理所有扩展名的请求求 只处理只处理.aspx 为扩为扩展名的请求展名的请求 指导实现网页图片防盗链2-1 训练要点:训练要点:HttpHandler 的创建和编码的创建和编码

20、web.config 中配置中配置HttpHandler和文件的映射和文件的映射 需求说明:需求说明:本网站页面引用图片路径后可正常显示本网站页面引用图片路径后可正常显示 其它网站引用本网站中的图片资源,不能正常显其它网站引用本网站中的图片资源,不能正常显示,而显示一个错误的图片示,而显示一个错误的图片讲解需求说明讲解需求说明指导实现网页图片防盗链 2-2实现思路:实现思路:通过一个通过一个HttpHandler 截取截取.jpg 请求请求 通过通过HttpContext判断是否是本站的地址在请判断是否是本站的地址在请求资源求资源 通过通过 context.Request.UrlReferre

21、r 获取有关获取有关客户端上次请求的客户端上次请求的 URL 信息信息完成时间:完成时间:25分钟分钟public void ProcessRequest(HttpContext context) if (context.Request.UrlReferrer.Host = localhost & context.Request.UrlReferrer.Port = context.Request.Url.Port) context.Response.ContentType = image/jpg; context.Response.WriteFile(context.Request.

22、PhysicalPath); else context.Response.ContentType = image/jpg; context.Response.WriteFile( context.Request.PhysicalApplicationPath + res/163error.jpg); 主机名主机名端口号端口号输出错误图片输出错误图片共性问题集中讲解n常见调试问题及解决办法常见调试问题及解决办法n代码规范问题代码规范问题共性问题集中讲解共性问题集中讲解静态化技术简介 静态化,即把动态页面转换成静态页面静态化,即把动态页面转换成静态页面页面静态化的好处页面静态化的好处有利于搜索引擎

23、搜索有利于搜索引擎搜索没有丢掉动态页面维护内容的方便性没有丢掉动态页面维护内容的方便性 性能和安全方面的提升性能和安全方面的提升 实现页面静态化 页面静态化的策略页面静态化的策略页面静态化的三种做法页面静态化的三种做法伪静态伪静态真静态真静态折中方法折中方法生成静态页面的步骤生成静态页面的步骤1、制作静态页面模板制作静态页面模板 2、由静态模板动态生成静态页面由静态模板动态生成静态页面3、使用使用HttpHandler 生成静态页面生成静态页面演示示例演示示例4:静态化图书详细信息页:静态化图书详细信息页public void ProcessRequest(HttpContext contex

24、t) int i = context.Request.Path.LastIndexOf(/); string strBookId = context.Request.Path.Substring( i + 1, context.Request.Path.Length - (i + 6); int bookId = Convert.ToInt32(strBookId); string filePath = context.Server.MapPath( /BookDetails/Book_ + bookId + .htm); BookManager manager = new BookManag

25、er(); context.Application.Lock(); /加锁加锁 if (!File.Exists(filePath) string templatePath = context.Server.MapPath( /BookDetails/template.htm);/模板路径模板路径 string template = ; /模板内容模板内容 using (StreamReader sr = new StreamReader(templatePath) template = sr.ReadToEnd();/读取模板内容读取模板内容 关键代码展示由地址获取由地址获取bookId生成

26、实际路生成实际路径径获取模板获取模板 Book book = manager.GetBookById(bookId);/获取获取Book信息信息 string html = template.Replace(WebRootPath, context.Request.ApplicationPath) /替换替换Web路径路径 .Replace(BookId, bookId.ToString() using (StreamWriter sw = new StreamWriter(filePath) sw.Write(html); /写入静态化页面内容写入静态化页面内容 context.Application.UnLock(); /解锁解锁 manager.AddClick(bookId); /增加点击数增加点击数 context.Server.Execute(/bookDetails/Book_ + bookId + .html); /转到实际路径转到实际路径模板内容替换模板内容替换练习静态化图书详细页面需求说明需求说明使用使用HttpHandler 技术实现技术实现“第三波书店第三波书店”图书详图书详细信息页的静态化细信息页的静态化 完成时间:完成时间:25分

温馨提示

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

评论

0/150

提交评论