版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、ASP.NET運行時模型運行時模型 第一章第一章課程地位每階段已包括:項目實戰(zhàn)、每階段已包括:項目實戰(zhàn)、COTCOT課程課程 總課時:總課時: 10081008C# OOPC# OOPJavaScriptJavaScriptT-SQLT-SQLJava OOPJava OOPS2350Y2344JSPJSPS2S2:JavaJava階段項目階段項目預(yù)備課程預(yù)備課程WinFormsWinFormsLogic JavaLogic JavaS1314S1S1:.NET.NET階段項目階段項目ASP.NETASP.NETHibernateHibernateN-TierN-TierAjaxAjaxSpr
2、ingSpringStrutsStrutsHTMLHTMLC#C#NTCNTCProjectProject知識知識Y2Y2:.NET.NET畢業(yè)設(shè)計項目畢業(yè)設(shè)計項目COTCOTCOTCOTCOTCOTY2Y2:JavaJava畢業(yè)設(shè)計項目畢業(yè)設(shè)計項目目標崗位標準手冊目標崗位標準手冊就業(yè)技能結(jié)構(gòu)圖本門課程目標學(xué)完本門課程后,你能夠?qū)W完本門課程后,你能夠深入理解深入理解ASP.NETASP.NET運行原理運行原理會開發(fā)用戶控件和自定義控件會開發(fā)用戶控件和自定義控件會使用會使用AjaxAjax技術(shù)構(gòu)建高用戶體驗的技術(shù)構(gòu)建高用戶體驗的Web應(yīng)用應(yīng)用會使用緩存優(yōu)化程序性能會使用緩存優(yōu)化程序性能會使用會使
3、用Web Service技術(shù)構(gòu)建分布式系統(tǒng)技術(shù)構(gòu)建分布式系統(tǒng)課程項目展示第三波書店升級版第三波書店升級版博客系統(tǒng)升級版博客系統(tǒng)升級版演示課程項目演示課程項目相關(guān)課程回顧ASP.NET的運行機制?的運行機制?.NET 中委托和事件的作用?中委托和事件的作用?ASP.NET 中常用的控件?中常用的控件?預(yù)習(xí)檢查用什么技術(shù)可以實現(xiàn)頁面靜態(tài)化?用什么技術(shù)可以實現(xiàn)頁面靜態(tài)化?如何讓如何讓IIS 處理靜態(tài)資源請求?處理靜態(tài)資源請求?本章任務(wù)實現(xiàn)第三波書店的數(shù)字水印效果實現(xiàn)第三波書店的數(shù)字水印效果實現(xiàn)第三波書店的靜態(tài)頁功能實現(xiàn)第三波書店的靜態(tài)頁功能本章目標理解理解ASP.NET運行時機制運行時機制 掌握使用
4、掌握使用HttpHandler 顯示圖片數(shù)字水印顯示圖片數(shù)字水印掌握使用掌握使用HttpHandler 將動態(tài)頁面靜態(tài)化將動態(tài)頁面靜態(tài)化了解簡單了解簡單HttpModule 的編寫的編寫 會在會在IIS上配置資源文件和上配置資源文件和ISAPI 的映射的映射在圖片上增加站點標在圖片上增加站點標識,能夠很好地保護識,能夠很好地保護著作權(quán),防止他人盜著作權(quán),防止他人盜用圖片用圖片數(shù)字水印簡介資源準備資源準備水印圖片水印圖片默認圖片默認圖片采用圖片形式的水印,需要一采用圖片形式的水印,需要一個水印圖片個水印圖片當(dāng)圖片封面圖片不存在時,當(dāng)圖片封面圖片不存在時,顯示該圖片,此時就不需要顯示該圖片,此時就
5、不需要在圖片上繪制水印在圖片上繪制水印數(shù)字水印思路分析實現(xiàn)方式實現(xiàn)方式直接編輯每張圖片直接編輯每張圖片編程實現(xiàn)批量編輯圖片編程實現(xiàn)批量編輯圖片在顯示圖片時,動態(tài)添加數(shù)字水印效果在顯示圖片時,動態(tài)添加數(shù)字水印效果需要大量的人力需要大量的人力節(jié)省人力,效率高,但原始圖節(jié)省人力,效率高,但原始圖片丟失了片丟失了使用使用HttpHandler數(shù)字水印思路分析請求的終點請求的終點 最終的處理最終的處理 ASP.NET 運行時和 HttpHandler 可能經(jīng)歷多個模塊,可能經(jīng)歷多個模塊, 層次層次“過濾過濾” 原路返回原路返回 操作演示:創(chuàng)建操作演示:創(chuàng)建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; 實現(xiàn)實現(xiàn)IsReusable屬性屬性實現(xiàn)實現(xiàn)IHttpHandler 接口接口實現(xiàn)實現(xiàn)ProcessRequest()方法方法HttpContex
7、t 對象,提供對用于為對象,提供對用于為 HTTP 請求提供服務(wù)的內(nèi)部服務(wù)器請求提供服務(wù)的內(nèi)部服務(wù)器對象(如對象(如 Request、Response、Session 和和 Server)的引用)的引用 關(guān)鍵代碼展示 .ashx文件的方式實現(xiàn)數(shù)字水印思路分析文件的方式實現(xiàn)數(shù)字水印思路分析獲得獲得URL傳的參數(shù)傳的參數(shù)ISBN根據(jù)根據(jù)ISBN查找相對應(yīng)的封面圖片查找相對應(yīng)的封面圖片將數(shù)字水印圖片將數(shù)字水印圖片“粘貼粘貼”在封面圖片的右下角在封面圖片的右下角修改程序的輸出類型,并將組合出的新圖片輸出修改程序的輸出類型,并將組合出的新圖片輸出修改頁面中訪問該圖片的路徑修改頁面中訪問該圖片的路徑指定H
8、andler方式實現(xiàn)數(shù)字水印動態(tài)輸出圖片動態(tài)輸出圖片創(chuàng)建創(chuàng)建HttpHandler程序程序編寫處理代碼編寫處理代碼修改圖書列表頁面的封面路徑修改圖書列表頁面的封面路徑查看效果查看效果指定Handler方式實現(xiàn)數(shù)字水印演示示例演示示例1:動態(tài)處理輸出圖片:動態(tài)處理輸出圖片程序輸出圖片代碼程序輸出圖片代碼 .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( ); .設(shè)置輸出格式設(shè)置輸出格式 輸出圖片文件輸出圖片文件 將圖片保存在輸出流將圖片保存在輸出流 關(guān)鍵代碼展示使用使用.ashx方式,需要修改所有訪問封面圖片的路方式,需要修改所有訪問封面圖片的路徑,太麻煩,能否直接訪問圖片,達到添加數(shù)字徑,太麻煩,能否直接訪問圖片,達到添加數(shù)字水印的效果?水印的效果?文件夾中的文件夾中的封面原圖封面原圖通過站點訪問該文件就顯通過站點訪問該文件就顯
10、示水印效果示水印效果全局Handler方式實現(xiàn)數(shù)字水印實現(xiàn)思路分析實現(xiàn)思路分析修改配置信息,將所有對修改配置信息,將所有對.JPG內(nèi)容的訪問轉(zhuǎn)到內(nèi)容的訪問轉(zhuǎn)到HttpHandler處理程序處理程序獲得訪問請求,得到用戶訪問的圖片路徑獲得訪問請求,得到用戶訪問的圖片路徑根據(jù)請求的路徑,查找相對應(yīng)的封面圖片根據(jù)請求的路徑,查找相對應(yīng)的封面圖片將數(shù)字水印圖片將數(shù)字水印圖片“粘貼粘貼”在封面圖片的右下角在封面圖片的右下角修改程序的輸出類型,并將組合出的新圖片輸出修改程序的輸出類型,并將組合出的新圖片輸出全局Handler方式實現(xiàn)數(shù)字水印實現(xiàn)數(shù)字水?。簩崿F(xiàn)數(shù)字水?。簑eb.config中注冊類,設(shè)置路徑
11、中注冊類,設(shè)置路徑編寫實現(xiàn)接口的類編寫實現(xiàn)接口的類使用開發(fā)服務(wù)器訪問圖書封面圖片使用開發(fā)服務(wù)器訪問圖書封面圖片全局Handler方式實現(xiàn)數(shù)字水印演示示例演示示例2:全局動態(tài)處理輸出圖片:全局動態(tài)處理輸出圖片配置配置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請求所對應(yīng)的物理路徑請求所對應(yīng)的物理路徑關(guān)鍵代碼展示練習(xí)圖書封面圖片水印 需求說明需求說明分別以指定分別以指定HttpHandler 和全局和全局HttpHandler 方式方式實現(xiàn)圖書封面圖片的水印效果實現(xiàn)圖書封面圖片的水印效果 完成時間:完成時間:30分鐘分鐘共性問題集中講解n常見調(diào)試問題及解決辦法常見調(diào)試問題及解決辦法n代碼規(guī)范問題代碼規(guī)范問題共性問題集中講解共性問題集中講解認識ISAPIISAPI 全稱全稱Internet Server Application Programming InterfaceISAPI 是可擴展的是可擴展的ISAPI 可管理特定資源的請求可管理特定資源的
14、請求如:如:aspx、asp 、php請求請求aspnet_isapi.dll 是一種是一種ISAPI負責(zé)處理負責(zé)處理aspx 等類型的請求等類型的請求負責(zé)創(chuàng)建負責(zé)創(chuàng)建ASP.NET 的運行時環(huán)境并和它發(fā)生交互的運行時環(huán)境并和它發(fā)生交互 處理動態(tài)請求的起點處理動態(tài)請求的起點認識ISAPIASP.NET 請求的處理過程請求的處理過程1、請求到達時,請求到達時,IIS 檢查資源類型并調(diào)用檢查資源類型并調(diào)用 ASP.NET ISAPI調(diào)用調(diào)用ASP.NET 輔助進程(輔助進程(IIS 6 對應(yīng)為對應(yīng)為w3wp.exe) 輔助進程加載輔助進程加載.NET運行時環(huán)境運行時環(huán)境 ASP.NET ISAPI
15、將請求轉(zhuǎn)發(fā)給輔助進程將請求轉(zhuǎn)發(fā)給輔助進程 2、輔助進程收到請求,通知輔助進程收到請求,通知ASP.NET ISAPI它將進行它將進行 處理處理 3、在輔助進程的上下文中執(zhí)行處理過程在輔助進程的上下文中執(zhí)行處理過程 在在.NET 運行時環(huán)境中執(zhí)行運行時環(huán)境中執(zhí)行 經(jīng)經(jīng)HttpModule和和HttpHandler 的處理的處理 4、處理完畢,通知處理完畢,通知ASP.NET ISAPI完成完成 理解 HttpModuleHttpModule 動動態(tài)請求的必經(jīng)之態(tài)請求的必經(jīng)之路路演示示例演示示例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 結(jié)束處理請求結(jié)束處理請求); 初始化方法初始化方法 關(guān)鍵代碼展示 web.config 的配置的配置 HttpModule 應(yīng)用舉例URL 重寫
18、重寫例:例:http:/./Default.aspx?category=games&id=3重寫為重寫為 http:/./games/id/3.aspx 權(quán)限認證權(quán)限認證訪問日志訪問日志深入 HttpHandler實現(xiàn)實現(xiàn) HttpHander 的關(guān)鍵點的關(guān)鍵點IHttpHandler接口接口IsReusable屬性屬性ProcessRequest()方法方法HttpContext 對象對象深入 HttpHandlerHttpHander 為為一般處理程序一般處理程序,即可以處理網(wǎng)站中任,即可以處理網(wǎng)站中任何資源的請求何資源的請求 aspx 頁面也是一種處理程序頁面也是一種處理程序繼承
19、了繼承了 IHttpHandler接口接口 HttpHandler 和和 aspx 處理程序的區(qū)別處理程序的區(qū)別 不同點不同點 HttpHandler aspx能夠使用服務(wù)能夠使用服務(wù)器端控件器端控件 不可以不可以 可以可以 能否使用能否使用Session 不能直接使用,需要繼承不能直接使用,需要繼承IRequiresSessionState 接口接口 可以可以 處理的請求處理的請求 幾乎可以處理所有擴展名的請幾乎可以處理所有擴展名的請求求 只處理只處理.aspx 為擴為擴展名的請求展名的請求 指導(dǎo)實現(xiàn)網(wǎng)頁圖片防盜鏈2-1 訓(xùn)練要點:訓(xùn)練要點:HttpHandler 的創(chuàng)建和編碼的創(chuàng)建和編碼
20、web.config 中配置中配置HttpHandler和文件的映射和文件的映射 需求說明:需求說明:本網(wǎng)站頁面引用圖片路徑后可正常顯示本網(wǎng)站頁面引用圖片路徑后可正常顯示 其它網(wǎng)站引用本網(wǎng)站中的圖片資源,不能正常顯其它網(wǎng)站引用本網(wǎng)站中的圖片資源,不能正常顯示,而顯示一個錯誤的圖片示,而顯示一個錯誤的圖片講解需求說明講解需求說明指導(dǎo)實現(xiàn)網(wǎng)頁圖片防盜鏈 2-2實現(xiàn)思路:實現(xiàn)思路:通過一個通過一個HttpHandler 截取截取.jpg 請求請求 通過通過HttpContext判斷是否是本站的地址在請判斷是否是本站的地址在請求資源求資源 通過通過 context.Request.UrlReferre
21、r 獲取有關(guān)獲取有關(guān)客戶端上次請求的客戶端上次請求的 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常見調(diào)試問題及解決辦法常見調(diào)試問題及解決辦法n代碼規(guī)范問題代碼規(guī)范問題共性問題集中講解共性問題集中講解靜態(tài)化技術(shù)簡介 靜態(tài)化,即把動態(tài)頁面轉(zhuǎn)換成靜態(tài)頁面靜態(tài)化,即把動態(tài)頁面轉(zhuǎn)換成靜態(tài)頁面頁面靜態(tài)化的好處頁面靜態(tài)化的好處有利于搜索引擎
23、搜索有利于搜索引擎搜索沒有丟掉動態(tài)頁面維護內(nèi)容的方便性沒有丟掉動態(tài)頁面維護內(nèi)容的方便性 性能和安全方面的提升性能和安全方面的提升 實現(xiàn)頁面靜態(tài)化 頁面靜態(tài)化的策略頁面靜態(tài)化的策略頁面靜態(tài)化的三種做法頁面靜態(tài)化的三種做法偽靜態(tài)偽靜態(tài)真靜態(tài)真靜態(tài)折中方法折中方法生成靜態(tài)頁面的步驟生成靜態(tài)頁面的步驟1、制作靜態(tài)頁面模板制作靜態(tài)頁面模板 2、由靜態(tài)模板動態(tài)生成靜態(tài)頁面由靜態(tài)模板動態(tài)生成靜態(tài)頁面3、使用使用HttpHandler 生成靜態(tài)頁面生成靜態(tài)頁面演示示例演示示例4:靜態(tài)化圖書詳細信息頁:靜態(tài)化圖書詳細信息頁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 = ; /模板內(nèi)容模板內(nèi)容 using (StreamReader sr = new StreamReader(templatePath) template = sr.ReadToEnd();/讀取模板內(nèi)容讀取模板內(nèi)容 關(guān)鍵代碼展示由地址獲取由地址獲取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); /寫入靜態(tài)化頁面內(nèi)容寫入靜態(tài)化頁面內(nèi)容 context.Application.UnLock(); /解鎖解鎖 manager.AddClick(bookId); /增加點擊數(shù)增加點擊數(shù) context.Server.Execute(/bookDetails/Book_ + bookId + .html); /轉(zhuǎn)到實際路徑轉(zhuǎn)到實際路徑模板內(nèi)容替換模板內(nèi)容替換練習(xí)靜態(tài)化圖書詳細頁面需求說明需求說明使用使用HttpHandler 技術(shù)實現(xiàn)技術(shù)實現(xiàn)“第三波書店第三波書店”圖書詳圖書詳細信息頁的靜態(tài)化細信息頁的靜態(tài)化 完成時間:完成時間:25分
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度環(huán)保建筑材料供貨合同3篇
- 農(nóng)村土地租賃與鄉(xiāng)村旅游融合發(fā)展合同2篇
- 公益性崗位勞動合同協(xié)議書(2025年度)-特殊教育支持服務(wù)3篇
- 農(nóng)村土地抵押借款合同范文(2025年)修訂版
- 二零二五年度養(yǎng)殖場土地租賃與農(nóng)產(chǎn)品品牌合作合同3篇
- 二零二五年度農(nóng)村房屋買賣合同協(xié)議書(含農(nóng)村產(chǎn)權(quán)交易監(jiān)管)
- 2025年度水電預(yù)埋及安裝服務(wù)合同范本(公共設(shè)施)3篇
- 2025年度養(yǎng)殖土地租賃及農(nóng)業(yè)物聯(lián)網(wǎng)應(yīng)用協(xié)議3篇
- 2024年中國滌絲繡花線市場調(diào)查研究報告
- 2024年中國楓木多層膠合板市場調(diào)查研究報告
- 遼海版六年級音樂上冊第8單元《3. 演唱 姐妹們上場院》教學(xué)設(shè)計
- 形勢任務(wù)教育宣講材料第一講——講上情
- 物業(yè)安全員考核實施細則
- 中國地質(zhì)大學(xué)(武漢)教育發(fā)展基金會籌備成立情況報告
- 第四章破產(chǎn)法(破產(chǎn)法)教學(xué)課件
- PE拖拉管施工方案標準版
- 7725i進樣閥說明書
- 鐵路建設(shè)項目施工企業(yè)信用評價辦法(鐵總建設(shè)〔2018〕124號)
- 時光科技主軸S系列伺服控制器說明書
- 無機非金屬材料專業(yè) 畢業(yè)設(shè)計論文 年產(chǎn)240萬平方米釉面地磚陶瓷工廠設(shè)計
- 社會組織績效考核管理辦法
評論
0/150
提交評論