ASP.NET之一般处理程序笔记
1.b/s結構原理 2.asp.net內部原理 3.狀態管理(cookie,session,viewstate)
4.HttpContext 上下文對象里的Response屬性,其實就相當于 是一個響應報文對象,可以通過它設置響應報文的內容. 比如: context.Response.ContentType="text/html", ?就是設置響應報文頭的Content-type值, ?告訴瀏覽器,要將響應報文作為html解析處理
5.響應的,瀏覽器發來的請求報文數據,就在HttpContext類的Request屬性
6.每次調用Response.Write("輸出內容")的時候,其實是將字符串存入了 ?? HttpResponse對象里的一個TextWriter的內部字節數組中. ?? 此數組中的數據,將最終成為 響應報文體內容.
7.ASP.NET中系統對象: ?HttpResponse: 封裝了頁面執行器返回到HTTP客戶端的輸出(http響應報文數據) .內部有一個字節數組,用來保存響應報文的數據信息 ?HttpRequest: 讀取客戶端在Web請求期間發送的值,(http請求報文數據)內部字節數組,用來保存請求報文的數據信息 ?Page : 指向頁面自身的方式,作用域為頁面執行期 ?HttpApplication : 作用于整個程序運行期的狀態對象. ?Session : 會話期狀態保持對象,用于跟蹤單一用戶的會話. ?Cookie:客戶端保持會話信息的一種方式 ?Server:提供對服務器上的方法和屬性的訪問 ? 8.瀏覽器向服務器傳參:如何在服務器接收瀏覽器傳來的數據 ? context.Request.QueryString["name"]; 獲取get參數 ,超鏈接的name值 ? context.Request.Form[""] 獲取post數據. ? context.Request.Params[""] 以上兩種獲取值的綜合體.
? 瀏覽器提交數據方式: ?1.表單提交(數據藏在請求報文體中) : 必須設置控件的name屬性值 ?2.地址欄的URL參數,超鏈接的url,js中的location (與表單的Get方式一樣) :數據藏在請求報文頭中 ??形式:http://127.0.0.1/login.ashx?txtname=jordan&txtpwd=123
? 9.Response: ?1.Redirect頁面重定向原理: ??頁面執行時發現重定向,便在響應報文體中產生: http 1.1/ 302 Found??? location:重定向地址 ?2.end方法:結束輸出.
<<<10.ASP.NET運行機制運行原理:>>> ?1.瀏覽器客戶端發送請求報文-- ?2.IIS服務器進行處理- ?3.isAPI.dll擴展程序(到IIS映射表中查找后綴名,若查找到了,轉到4, ??? 如果找不到,則IIS服務器自己對其進行處理,比如靜態頁面, ??? IIS服務器自己進行讀取,將響應報文返回給瀏覽器)-- ?4.將請求報文交給FrameWork- ?5.ISAPIRuntime-- ?6.HttpRuntime--Http運行時 ?7.創建HttpWorkerRequest對象(請求報文信息在里面,返回的報文請求也包括在內)-- ?8.HttpContext對象:上下文對象包括1.HttpRequest對象 2.HttpResponse對象 (需要使用HttpWorkerRequest對象)-- ?9.通過HttpApplicationFactory工廠模式-- ?10.創建HttpApplication對象(里面包含HttpContext上下文對象)-- ?11.調用HttpApplication的ProcessRequest()方法-- ?12.在此同時執行請求中所注冊的19個委托事件-- ?13.執行到第八個事件時,通過反射創建請求頁面的實體類對象, ???? 頁面的實體類都必須實現FrameWork環境所提供的IHttpHandler公共接口, ???? 該接口實現了ProcessRequest()方法 ?14.在執行到第11個事件和第12事件 之間,調用了反射創建的請求頁面 ???? 對象的ProcessRequest()處理方法 , ?15.將處理后所得到的響應報文信息通過HttpFinishRequest對象包裝返回給HttpWorkerRequest對象 ?16.HttpWorkerRequest對象 通過HttpResponse對象將響應報文返回給IIS服務器 ?17.最后再將響應報文返回到瀏覽器頁面解析出來 ?
11.一般處理程序: ?是一個實現System.Web.IHttpHandler接口額特殊類 ?任何一個實現了IHttpHandler接口的類,是作為一個外部請求 ?的目標程序的前提(凡是沒有實現該接口的類,就不能被瀏覽器請求, ?實現該接口的類也不一定全能被外部請求)
?15010204606 常洋 ?QQ 928188501
--------------------- 3-30( 一般處理程序的增刪改查 ) --------------------- 1.ContentType: text/html等響應報文頭與響應報文體(write)信息 ?? 都是由HttpResponse對象獲得的.
2.同一個一般處理程序頁面 在不同方法中拿不到上下文對象context時 ?? 可以通過HttpContext.Current.Response.Write();獲取當前的上下文對象
?---------------- ?4-1 ( 文件上傳 ) ----------------- 1.必須通過表單提交要上傳的數據,設置enctype屬性 <form action="" method="post" enctype="multipart.form-data"></form> 2.必須使用post提交表單數據 3.必須設置表單的屬性 enctype="multipart.form-data" ?? 設置enctype后,請求報文頭中多處一個:boundary屬性(分界符) ?? 請求報文體的數據格式發生改變: ?由name="value"的方式 變成 分界符分段的方式 . ?被選中要上傳的文件數據,就包含在請求報文體中. HttpFileCollection files= content.Request.Files; //獲取瀏覽器頁面 所有文件的信息 HttpPostedFile file=files[i];
---------------- 2 (生成圖片) ---------------- 1.首先修改格式 context.Response.ContentType = "image/jpeg"; 2.創建一個畫布(圖片對象): Image img= new Bitmap(120,60); ?????????? Image img=Image.FromFile("圖片的絕對路徑");//讀取圖片信息 ??????????? Image img=Image.FromStream(圖片文件流);//讀取圖片信息 3.創建一個畫筆: Graphics g =Graphics.FromImage(img) ; 將圖片對象傳進去 4.使用畫筆進行繪畫: g.DrawString("顯示內容",new Font("全新硬體行書簡"),Brushes.Yellow,x,y); --畫在圖片對象的 哪個位置 ???????? g.DrawImage(水印圖,new Rectangle(),new Rectangle(),GraphicsUnit.pixel); ???????? 參數0:所要畫的水印圖 ???????? 參數1:操作的是源圖片,設置所要打印的水印圖的大小以及開始坐標的位置 ???????? 參數2:操作的是水印圖片,設置水印圖片顯示的部分以及顯示的寬高 ???????? 參數3:設置單位為像素 5.設置圖片保存的格式:img.Save(context.Response.OutputStream,System.Drawing.Imaging.ImageFormat.Jpeg); ?將圖片以指定的格式保存到指定的輸出流中
------------------------- 3. (文件下載(文件另存為)) -------------------------- 在響應報文中添加一個報文頭類型 ?HttpUtility.UrlEncode("文件名");//將文件相對路徑 進行url轉碼 ?context.Response.AddHeader("Content-Disposition","attachment; filename=\"文件名\"");
?
轉載于:https://www.cnblogs.com/zxp19880910/archive/2012/08/19/2646313.html
總結
以上是生活随笔為你收集整理的ASP.NET之一般处理程序笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 14+3等于多少?
- 下一篇: 货车增压器扫了点轮残渣会进发动机吗?