国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

【ASP.NET基礎】ASP.NET內置對象

2019-11-14 16:01:11
字體:
來源:轉載
供稿:網友
準確地說,asp.net 并沒有內置對象這一說,jsp 里確實把 request、response 這些當作 jsp 的內置對象,這里只不過是借用了一下 jsp 的說法而已。
在 Web 中處于中心的是 Web 服務器,用來處理客戶端的 HTTP 請求。由于 HTTP 是一種無狀態的協議,也就是它并不記得上一次誰請求過它,不會主動去詢問客戶端,只有當客戶端主動請求之后,服務器才會響應。
 
1.【Request】
Request封裝了客戶端請求信息。Request的常見屬性如下:
 屬性名 值類型 說明
 applicationPath String 獲取請求的資源在網站上的根路徑
 ContentEncoding Encoding 設置請求對象的編碼
 Cookies HttpCookieCollection 客戶端發送到服務器的Cookie集合
 QueryString NameValueCollection 當前請求的查詢字符串集合
 UrlReferrer Url獲取用戶由哪個url跳轉到當前頁面
 
2.【Response】
Response代表了服務器響應對象。每次客戶端發出一個請求的時候,服務器就會用一個響應對象來處理這個請求,處理完這個請求之后,服務器就會銷毀這個相應對象,以便繼續接受其它客服端請求。
 
Response常用屬性如下:
 屬性名 值類型 說明
 Charset string 表示輸出流的所使用的字符集
 ContentEncoding Encoding 設置輸出流的編碼
 ContentLength Int 輸出流的字節大小
 ContentType string  輸出流的HTTP MIME類型
 Cookies HttpCookieCollection 服務器發送到客戶端的Cookie集合
 Output TextWriter 服務器響應對象的字符輸出流
 RedirectLocation string 將當前請求重定向
 
Response常用方法
 屬性名 返回值類型 說明
 AppendCookie void 向響應對象的Cookie集合中增加一個Cookie
 Clear void 清空緩沖區中的所有內容輸出
 Close void 關閉當前服務器到客戶端的連接
 End void 終止響應,并且將緩沖區中的輸出發送到客戶端
 Redirect void 重定向當前請求
 
3.【Server】
Server對象是用于獲取服務器的相關信息的對象。它常用方法如下:
 屬性名 返回值類型 說明
 Execute void 執行指定的資源,并且在執行完之后再執行本頁的代碼
 HtmlDecode string 消除對特殊字符串編碼的影響
 HtmlEncode string 對特殊字符串進行編碼
 MapPath string 獲取指定相對路徑在服務器上的物理路徑
 Transfer void 停止執行當前程序,執行指定的資源
 UrlDecode string 對路徑字符串進行解碼
 UrlEncode string 對路徑字符串進行編碼
 
4.【session
Session對象用來保存與特定用戶相關的信息,Session中的數據保存在服務器端,在客戶端需要的時候創建Session,在客戶端不需要的時候銷毀Session,使它不再占用服務器內存。
在asp.net中Session的默認生命周期是20分鐘,也就是當我們在9:00的時候設置了一個Session,如果在9:20之前客戶端沒有任何請求,那么它的生命周期就到9:20分鐘結束。但是一旦用戶在9:19又向服務器發送了一個請求,那么這個Session現在的生命周期就是在當前時間的基礎上再加上20分鐘,也就是此時這個Session的生命周期是到9:39結束。
 
Session具有以下特點:
Session中的數據保存在服務器端;
Session中可以保存任意類型的數據;
Session默認的生命周期是20分鐘,可以手動設置更長或更短的時間。
 
假設我們要設置一個Session用來保存用戶名,這個Session的名字是“UserName”,值是“sa”,代碼如下:
Session[“UserName”]=”sa”;
 
一個網站里用到 Session 的地方肯定不止一個,所以在設置和獲取 Session 的時候通過 Session 的名在來操作,并且 Session 被設置成能存儲任意類型的對象(即 Object 類型),所以獲取 Session 的時候要根據設置的時候的實際類型進行響應的強制類型轉換(當然如果在 Session 中存放像 int/byte/short 這樣的數據類型,獲取 Session 的值算是一種拆箱操作而不是強制類型轉換),對于上面的 Session ,獲取 Session 的值的代碼如下:
string username=(string)Session[“UserName”];
 
對于上面的代碼,有個問題需要注意:當沒有設置相應的 Session 或者 Session 因為超過生命周期而被銷毀時,上面的代碼有可能拋出異常。我們可以先判斷是否存在指定名稱的 Session,如果不存在就不用獲取了,僅當存在的情況下才獲取 Session 的值,上面的代碼可以改進如下:
string userName; if(Session["UserName"]!=null) { //當指定名稱的Session存在時,獲取指定Session的值  userName=(string)Session["UserName"];}

 

5.【Cookie】
Cookie 對象和 Session 對象一樣也是用來保存特定的用戶相關的數據,不過 Session 不同的是 Cookie 保存在客戶端而不是服務器上,每次客戶端發出請求的時候都會把 Cookie 一起發送到服務器,服務器每次響應客戶端請求的時候會重新把 Cookie 發送到客戶端保存。
 
Cookie 保存數據有以下特點:
Cookie 中的數據保存在客戶端;
Cookie 中只能保存字符串類型的數據,如果需要在Cookie中保存其它類型數據,需要將其轉換成字符串類型后保存;
Cookie 也有其默認生命周期,也可以手動設置,最大可設置成50年之后過期。
 
同 Session 的情況一樣,有可能在一個網站中使用到的 Cookie 不止一個,我們仍通過 Cookie 的名稱來區分不同的 Cookie。
設置 Cookie 的過程就是在服務器的響應對象 Response 的 Cookie 集合中增加一個 Cookie ,Response 對象會把這個 Cookie 集合中的所有 Cookie 都發送客戶端。代碼如下(仍以保存用戶名為例):
HttpCookie cookie = new HttpCookie("UserName", "sa");Response.Cookies.Add(cookie);

 

 獲取 Cookie 就是從客戶端的請求對象中找到對應名稱的 Cookie,當然也有可能出現 Cookie 不存在的情況,所以在獲取之前也需要檢查指定名稱的Cookie是否存在,如下:
 string userName; if (Request.Cookies["UserName"] != null) {      userName = Request.Cookies["UserName"].Value; }

 

6.【Application】

Application 和 Session 存儲的數據類型和存儲位置一樣,都是存放 Object 類型的數據(也就是任意類型),并且存放在服務器上,不同的 Application 中的數據可以由網站中所有的用戶來設置或者獲取。并且 Application 中存放的數據沒有時間限制,除非我們手動刪除或者服務器重新啟動,否則存放的數據都會丟失。
下面是 Session、Cookie 和 Application 的區別:

 名稱 使用范圍 存儲位置 存放數據類型 生命周期
 Session 特定用戶 服務器 Object,也就是任意類型 有,可以自行設置
 Cookie 特定用戶 客戶端 String,也就值字符串 可以自行設置
 Application 所有用戶 服務器 Object,也就是任意類型 無
 
7.【<%%>表達式】
<%%>用來編寫程序的代碼部分。在其中可以聲明變量和方法。如下:
 <%     string name = Request.Form["userName"].Trim();     string userName;     if (Request.Cookies["UserName"] != null)     {         userName = Request.Cookies["UserName"].Value;     }      %>

 

在<%%>就是符合C#要求的代碼。

8.【<%=%>表達式】
<%=%>是用來向輸出流中變量的值。其用法如下:
<% int i = 6; %><%=i %>
 
Response.Write()輸出和<%=%>輸出最后的效果是一樣的。
 
 
來源:zhoufoxcn.blog.51cto.com/792419/166803

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 芦山县| 塔河县| 韶山市| 衡阳县| 射阳县| 诸暨市| 个旧市| 仁化县| 乐亭县| 林周县| 平泉县| 海城市| 和龙市| 建始县| 东山县| 介休市| 昌黎县| 大冶市| 湘潭市| 新竹县| 洛阳市| 遂溪县| 康平县| 景德镇市| 县级市| 韩城市| 枣强县| 永清县| 鄂托克旗| 正定县| 错那县| 阿图什市| 唐海县| 兴宁市| 文化| 高青县| 定日县| 屏山县| 紫阳县| 揭阳市| 安义县|