web程序入门五(http无状态)
Asp.net中的狀態保持方案:
?ViewState:是donet特有的? 微軟提供的對象來完成狀態保持
ViewState["key1"] = 11;? ? ?賦值? 鍵值對 形式? object類型
ViewState["key1"] 直接取值,將其轉化成相應的類型
原理:本質上是一種隱藏域。微軟默認提供的
?想用ViewState必須用服務端控件編程? ? ? <form? id= "form1"? ?runat="server">
?
cookie??存儲在瀏覽器內存中,瀏覽器關閉就沒有了。可以存在磁盤上,永久存儲。
可以設置一個path來限制某個路徑下面的頁面才會把cookie發送到后臺。
Response.Cookies["cp"].Value = "abc";? 寫一個cookie ,給cookie賦值
如果這樣創建cookie,是將cookie的數據存儲在瀏覽器的內存中,瀏覽器關閉,cookie丟失
string? ss? =? Request.Cookies["cp"].Value;? ?接收瀏覽器端的cookie值
Response.Cookies["cp"].Value = "abc";
Response.Cookies["cp"].Expires = DateTime.Now.AddDays(3);? 添加過期時間,當前時間再加3天
設置了過期時間的cookie存儲在磁盤上
Response.Cookies["cp"].Expires = DateTime.Now.AddDays(-1);? 設置cookie過期? ?刪除cookie
?Response.Cookies["cp"].Path = "/"? ? ?指定cookie路徑,訪問該路徑才有cookie值? ? ?/代表所有的路徑
?Response.Cookies["cp"].Path?= "/app"? 只有訪問該路徑下所有文件夾 才帶cookie?
?Response.Cookies["cp"].Domain = "www.baidu.com"? ?設置域范圍??
?
除了上面的方法 Donet 還提供了下面的一個類來添加cookie
HttpCookie? ?acookie? = new HttpCookie("name");
acookie.Value = "abc";
acookie.Expires = DateTime.Now.AddDays(1);
Response.Cookies.Add(acookie);
?
多值cookie
Response.Cookies["user"]["username"] = "abc";
Response.Cookies["user"]["lastvisi"] = "2017-11-29";
?
?Request.Cookies.Count? ?獲取cookie的個數
?
?session相關:session存object類型數據
服務端狀態保存機制,每個session有一個sessionId? ?SessionId以cookies的形式放在請求報文中,發送給服務端
Set-Cookie:中存的就是sessionId
每個用戶都有自己的session對象
Session["name"] = "123"? ?Session 默認過期時間20分鐘,滑動過期時間
瀏覽器關了,sessionId 沒有了,也就沒有了session值
取Session的值前,需要先判斷不為空
Response.Write((Session["name"]).ToString());
?
能用客戶端保存就不用服務端
?
在一般處理程序中使用session必須實現IRequiresSessionState接口? ?這是一個標記接口
在aspx中不需要
System.Web.SessionState.IRequiresSessionState? 在類中繼承這個接口
Session["user"] = "abcf";? ? ? ? ?//進程內session
?
轉載于:https://www.cnblogs.com/mayyan/p/7918924.html
總結
以上是生活随笔為你收集整理的web程序入门五(http无状态)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java安装包(JDK)安装和运行环境配
- 下一篇: 机器视觉工业镜头-Computar