版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
WebForm
和
狀態(tài)的保持講師:王承偉
既然有了Ashx,為什么還要有Aspx?如果每次輸出網(wǎng)頁都一般處理程序(ashx)的話太痛苦了,所以一般生成html的時候都直接創(chuàng)建aspx(Web窗體,WebForm)WebForm分為兩個文件aspx和aspx.cs,aspx是頁面模板,是頁面描述文件,就是html+js+css的內(nèi)容,和aspx.cs結(jié)合的更好,不用像一般處理程序那樣程序員自己去輸出HTML字符串或讀取填充模板,控件都是定義在aspx中,內(nèi)聯(lián)的JavaScript、CSS也是寫在aspx中的,服務(wù)端的C#代碼是定義在aspx.cs中。aspx控制頁面長相,cs控制程序邏輯,這種“前aspx后cs”的方式就被稱為CodeBehind(代碼后置-為什么要后置?)。新建aspx頁面,代碼結(jié)合圖片分析,前后臺文件運(yùn)行次序WebFormcs可以調(diào)用aspx中的runat=server的控件(根本原因),aspx中也可以訪問cs中定義的非私有的成員(根本原因),還可以編寫復(fù)雜的C#代碼,for等所有C#代碼都可以寫在aspx中(不推薦)前面<%=UserName%><%=SayHello();%><%if(UserName=="aaa"){UserName="bbb";}%>后面在當(dāng)前位置輸出表達(dá)式的值的時候使用<%=UserName%>,不要丟了=,相當(dāng)于在當(dāng)前位置調(diào)用Response.Write(UserName)使用的函數(shù)、代碼相當(dāng)于在這個位置調(diào)用函數(shù)、執(zhí)行代碼。注意aspx中調(diào)用cs的只能是非私有成員(非private修飾-因?yàn)槔^承關(guān)系)<%%>中的代碼是運(yùn)行在服務(wù)器端的,是C#語法,在服務(wù)端運(yùn)行完成才輸出到瀏覽器,其他部分是運(yùn)行在瀏覽器端的,是html、JavaScript語法。前臺文件和后臺文件在運(yùn)行的時候是兩個分開的類前臺文件類繼承于后臺文件類。aspx、cs、dll之間的關(guān)系(*)在WebForm的頁面中執(zhí)行下面的代碼Response.Write(this.GetType()+"<br/>");在執(zhí)行網(wǎng)站時,會被編譯成相應(yīng)的程序集(dll文件),這些dll文件可以通過以下代碼查看,默認(rèn)保存在C盤中.Response.Write(this.GetType().Assembly.Location+"<br/>");發(fā)現(xiàn)當(dāng)前執(zhí)行頁面的類名是ASP.webform1_aspx這樣的類名,父類才是ASPNETTest1.WebForm1使用Reflector打開這個臨時dll,反編譯這兩個類,發(fā)現(xiàn)ASPNETTest1.WebForm1是在VS中編寫的aspx.cs類,而ASP.webform1_aspx則是一個繼承自ASPNETTest1.WebForm1的子類,ASP.webform1_aspx代碼是根據(jù)aspx內(nèi)容動態(tài)生成的構(gòu)建網(wǎng)頁內(nèi)容的類。綜上,aspx最終也會生成一個類,這個類是繼承自aspx.cs中的類。查看反編譯以后的代碼,可以看到就是編譯生成了普通的.Net代碼。因?yàn)閍spx生成的代碼是cs類的子類,所以就明白了為什么“aspx中調(diào)用cs的成員級別必須是protected或者public,不能是private的?!盿spx和ashxaspx和ashx關(guān)系:aspx就是一個特殊的ashx,微軟在aspx中幫我們封裝了很多操作,我們可以“傻瓜”化的進(jìn)行開發(fā)。aspx和JavaScript和css混合寫。瀏覽器如果報錯“***行錯誤”(js腳本錯誤),不要看aspx,要看生成的源代碼。登錄流程用戶打開登錄頁面,填入用戶名密碼,點(diǎn)擊【登錄】按鈕,瀏覽器將用戶輸入的用戶名、密碼發(fā)送給網(wǎng)站服務(wù)器,網(wǎng)站服務(wù)器讓負(fù)責(zé)處理登錄請求的程序來處理這個登錄請求,處理程序判斷用戶名、密碼是否正確,然后將判斷結(jié)果返回給瀏覽器。開發(fā)一個登錄頁面需要做兩個工作:
1.顯示在瀏覽器中的頁面、Dom特效,和C#代碼沒關(guān)系,也就是前端(前臺)頁面,相當(dāng)于這個頁面要生成的HTML代碼模板;
2.處理瀏覽器請求的服務(wù)器端代碼,C#代碼,也就是后臺代碼。畫圖區(qū)分第一次請求和之后的提交練習(xí)練習(xí):做一個加法計算器步驟:
1.新建網(wǎng)站
2.添加新建項(xiàng)->Web窗體(Cul.aspx)
3.打開Cul.aspx,進(jìn)入設(shè)計視圖,從工具欄選擇html控件拖入到頁面適當(dāng)?shù)奈恢?可以使用適當(dāng)?shù)腍TML代碼布局--Table)
5.在Form_Load事件中編寫代碼Request其它成員1、Request.UrlReferrer請求的來源,可以根據(jù)這個判斷從百度搜的哪個關(guān)鍵詞、防下載盜鏈、防圖片盜鏈,可以偽造(比如迅雷)。"本圖片僅供如鵬網(wǎng)內(nèi)部交流使用",在DZ中測試。全局防盜鏈用Globals.asax2、Request.UserHostAddress獲得訪問者的IP地址3、Request.Cookies
獲取瀏覽器發(fā)過來的瀏覽器端的Cookie,從它里面讀取Cookie值,比如context.Request.Cookies["mysessionid"],使用Request.Cookies的時候只是讀取,將Cookie寫回瀏覽器要用Response.Cookies4、Request.MapPath(virtulPath)將虛擬路徑轉(zhuǎn)換為磁盤上的物理路徑,Request.MapPath("~/a/b.aspx")就會得到D:\2008\WebSites\WebSite4\a\b.aspxResponse其它成員響應(yīng)的緩沖輸出:為了提高服務(wù)器的性能,向?yàn)g覽器Write的時候默認(rèn)并不會每Write一次都會立即輸出到瀏覽器,而是會緩存數(shù)據(jù),到合適的時機(jī)或者響應(yīng)結(jié)束才會將緩沖區(qū)中的數(shù)據(jù)一起發(fā)送到瀏覽器。Response對象的主要成員:1、Response.Buffer、Response.BufferOutput:經(jīng)過Reflector反編譯,發(fā)現(xiàn)兩個屬性是一樣的,Buffer內(nèi)部就是調(diào)用的BufferOutput。這個屬性用來控制是否采用響應(yīng)緩存,默認(rèn)是true。2、Response.Flush()將緩沖區(qū)中的數(shù)據(jù)發(fā)送給瀏覽器。這在需要將Write出來的內(nèi)容立即輸出到瀏覽器的場合非常適用。案例:大批量數(shù)據(jù)的導(dǎo)入,顯示正在導(dǎo)入第*條數(shù)據(jù),用Thread.Sleep模擬耗時。3、Response.Clear()清空緩存區(qū)中的數(shù)據(jù),這樣在緩存區(qū)中的沒有發(fā)送到瀏覽器端的數(shù)據(jù)被清空,不會被發(fā)送到瀏覽器。4、Response.ContentEncoding輸出流的編碼。5、Response.ContentType輸出流的內(nèi)容類型,比如是html(text/html)還是普通文本(text/plain)還是JPEG圖片(image/JPEG)。Response其它成員6、Response.Cookies返回給瀏覽器的Cookie的集合,可以通過它設(shè)置Cookie7、Response.OutputStream輸出流,在輸出圖片、Excel文件等非文本內(nèi)容的時候要使用它8、Response.End()終止響應(yīng),將之前緩存中的數(shù)據(jù)發(fā)給瀏覽器,End()之后的代碼不會被繼續(xù)執(zhí)行,End方法里調(diào)用了Flush()方法。在終止一些非法請求的時候,比如盜鏈等可以用End()立即終止請求。9、Response.Redirect(url)重定向?yàn)g覽器到新的網(wǎng)址。即可以重定向到站外網(wǎng)址也可以重定向到站內(nèi)網(wǎng)址。Response.Redirect("")、Response.Redirect("a.htm")。Redirect是向?yàn)g覽器發(fā)回302重定向(還有一個Location告訴瀏覽器要重定向到哪個頁面),是通知瀏覽器“請重新訪問url這個網(wǎng)址”,這個過程經(jīng)歷了服務(wù)器通知瀏覽器“請重新訪問url這個網(wǎng)址”和瀏覽器接到命令訪問新網(wǎng)址的過程。使用HttpWatch查看整個響應(yīng)過程的Http報文。用Redirect因?yàn)槭菫g覽器自己去重新訪問新網(wǎng)址的,所以在地址欄中是可以看到網(wǎng)址的變化的。后面會用來防止刷新瀏覽器時提示“重試”。10、Response.SetCookie(HttpCookiecookie),向輸出流中更新寫到瀏覽器中的Cookie,如果Cookie存在就更新不存在就增加。是對Response.Cookies的簡化調(diào)用。11、Response.Write()向?yàn)g覽器輸出內(nèi)容。Server屬性Server屬性是HttpServerUtility的一個實(shí)例,它提供對服務(wù)器上的方法和屬性的訪問。Server對象HtmlEncode方法和HtmlDecode方法Execute方法和Transfer方法UrlEncode方法和UrlDecode方法MapPath方法取得文件的物理路徑執(zhí)行另一個頁面的腳本將文本編碼成可以在瀏覽器
中可正確瀏覽的格式URL編碼和解碼Server(HttpServerUtility)Server是上下文對象context的一個屬性,是HttpServerUtility類的一個對象Server.HtmlDecode()、Server.HtmlEncode()Server.UrlEncode()、Server.UrlDecode()是對HttpUtility類中相應(yīng)方法的一個代理調(diào)用。推薦總是使用HttpUtility,因?yàn)橛械牡胤胶茈y拿到Server對象,而且Server的存在是為以前ASP程序員習(xí)慣而留的。別把HtmlEncode、UrlEncode混了,UrlEncode是處理超鏈接中的中文問題,HtmlEncode是處理html代碼的。還是推薦用HttpUtility.HtmlEncode。Server.Transfer(path)內(nèi)部重定向請求,Server.Transfer(“JieBanRen.aspx”)將用戶的請求重定向給JieBanRen.aspx處理,是服務(wù)器內(nèi)部的接管(不能重定向到外部網(wǎng)站),瀏覽器是意識不到這個接管的,不是象Response.Redirect那樣經(jīng)歷“通知瀏覽器‘請重新訪問url這個網(wǎng)址’和瀏覽器接到命令訪問新網(wǎng)址的過程”,是一次http請求,因此瀏覽器地址欄不會變化。因?yàn)槭莾?nèi)部接管,所以在被重定向到的頁面中是可以訪問到Request、Cookies等這些來源頁面接受的參數(shù)的,就像這些參數(shù)是傳遞給他的,而Redirect則不行,因?yàn)槭亲尀g覽器去訪問的。注意Transfer是內(nèi)部接管,因此不能像Redirect那樣重定向到外部網(wǎng)站。(???Response.Redirect就可以重定向到外部網(wǎng)站。不能內(nèi)部重定向到ashx,否則會報錯“執(zhí)行子請求出錯”.有的時候不能拿到HttpContext對象,比如在Global.asax中(后面講),可以通過HttpContext.Current拿到當(dāng)前的HttpContext,進(jìn)而拿到Response/Request/Server等Server.MapPath。無狀態(tài)Http無狀態(tài)的根本原因是:瀏覽器和服務(wù)器使用Socket通信,服務(wù)器將請求結(jié)果返回給瀏覽器后,會關(guān)閉當(dāng)前Socket連接。而且服務(wù)器會在處理頁面完畢后銷毀頁面對象。應(yīng)用層面的原因是:瀏覽器和服務(wù)器之間通信都遵守HTTP協(xié)議。一個瀏覽者發(fā)出的請求都是由實(shí)現(xiàn)了IHttpHandler接口的對象進(jìn)行響應(yīng),由于下次訪問不一定還是上次那個對象進(jìn)行響應(yīng),上次響應(yīng)完畢對象可能已經(jīng)被銷毀了,寫的類變量值早就不存在了,因此不要將狀態(tài)信息保存到類變量中。編寫一個aspxprivateinti;publicvoidCount(){Response.ContentType="text/plain";Response.Write(i++);}多次刷新我們發(fā)現(xiàn),變量根本不會記憶上次的值。無狀態(tài)HttpHttp協(xié)議是無狀態(tài)的,不會記得上次和網(wǎng)頁“發(fā)生了什么”(故事:24小時記憶)。服務(wù)器不記得上次給了瀏覽器什么。對網(wǎng)站造成的影響:如果用戶錄入了一些信息,當(dāng)跳轉(zhuǎn)到下一個頁面時,數(shù)據(jù)丟失,再也不能獲得那些數(shù)據(jù)。
如果要知道上一次的狀態(tài)信息,我們就得把這個狀態(tài)信息記錄在某個地方:
a.服務(wù)器端
b.瀏覽器端 c.表單元素中—如:隱藏域<inputtype=“hidden”/>(Http報文)畫圖.思考:如果要保持用戶登錄狀態(tài)怎么辦?中的狀態(tài)(信息)保持方案客戶端本質(zhì)上3種:隱藏域/Cookies/QueryString(url?name=1)常用的狀態(tài)(信息)保持方式(重點(diǎn))ViewState: 的.aspx頁面特有,頁面級的; 就是在頁面上的一個隱藏域中保存客戶端單獨(dú)使用的數(shù)據(jù)的一種方式; 服務(wù)器端控件的值都自動保存在ViewState中;Cookie: HTTP協(xié)議下的一種方式,通過該方式,服務(wù)器或腳本能夠在客戶機(jī)上維護(hù)狀態(tài)信息;就是在客戶端保存客戶端單獨(dú)使用的數(shù)據(jù)的一種方式; 就像你的病歷本一樣,醫(yī)院直接給你帶回家;Session:現(xiàn)在指的是進(jìn)程內(nèi)Session。 在服務(wù)器端保存客戶端單獨(dú)使用的數(shù)據(jù)的一種方式; 就像銀行賬戶,錢都存在銀行里,你就拿一張銀行卡(SessionId)回家;Application: 在服務(wù)器端保存共享數(shù)據(jù)的一種方式; 就像銀行的單人公共衛(wèi)生間,誰進(jìn)去都行,但一次去一個,進(jìn)去了就鎖上門,出來再把鎖打開;ViewState(頁面級)使用方式:作用域頁面級 保存數(shù)據(jù)方式:
ViewState["myKey"]="MyData"; 讀取數(shù)據(jù)方式: StringmyData;if(ViewState["myKey"]!=null){myData=(string)ViewState["myKey"];}ViewState不能存儲所有的數(shù)據(jù)類型,僅支持:
String、Integer、Boolean、Array、ArrayList、Hashtable使用ViewState的前提:
頁面上必須有一個服務(wù)器端窗體標(biāo)記(<formrunat=“server”>)服務(wù)器在接收到用戶請求一個頁面后,會自動在請求報文中找看是否包含__VIEWSTATE的隱藏域,如果有,則將中間的值解碼后添加到頁面的ViewState屬性中。服務(wù)器在輸出的時候,也會自動的將ViewState中的值添加到表單里名叫__VIEWSTATE的隱藏域中。VIEWSTATE適用于同一個頁面在不關(guān)閉的情況下多次與服務(wù)器交互跨頁面提交的__VIEWSTATE不會被目標(biāo)頁面裝入頁面的ViewState屬性中ViewState圖服務(wù)器將ViewState里保存的值經(jīng)過Base64編碼后,自動添加到頁面的隱藏域中。使用ViewState可以方便的在服務(wù)器端將數(shù)據(jù)輸出保存到客戶端頁面的一個隱藏域中Aspx里的ViewState初探(重點(diǎn),???查看生成的源代碼,將所有隱藏內(nèi)容統(tǒng)一放到了名字為__VIEWSTATE的隱藏字段中,使用序列化算法將所有隱藏內(nèi)容放到一個字符串中。點(diǎn)擊幾次在使用ViewStateDecoder這個工具查看ViewState內(nèi)容,發(fā)現(xiàn)了確實(shí)將這些改變的內(nèi)容放到了ViewState中。存儲非表單域、非value值的容器。禁用ViewState的方法,禁用單個控件的ViewState設(shè)定enableviewstate=false,禁用ViewState以后TextBox版本不受影響,ss。禁用整個頁面的,在aspx的Page指令區(qū)加上EnableViewState="false"。內(nèi)網(wǎng)系統(tǒng)、互聯(lián)網(wǎng)的后臺可以盡情的用ViewState?;卮餠iewState原理的時候:說Input版本(TextBox)自增和Div版本(Label)的不同。(完美?。。。?-當(dāng)某些控件的某些屬性不屬于瀏覽器表單的提交范圍時,fw將會把這些屬性添加到ViewState中保存。WebForm的IsPostBack依賴于ViewStateCookie(小甜餅)—病歷本Cookie是一種能夠讓網(wǎng)站服務(wù)器把少量數(shù)據(jù)(4kb左右)儲存到客戶端的硬盤或內(nèi)存,并且讀取出來的一種技術(shù)。當(dāng)你瀏覽某網(wǎng)站時,由Web服務(wù)器放置于你硬盤上的一個非常小的文本文件,它可以記錄你的用戶ID、瀏覽過的網(wǎng)頁或者停留的時間等網(wǎng)站想要你保存的信息。當(dāng)你再次通過瀏覽器訪問該網(wǎng)站時,瀏覽器會自動將屬于該網(wǎng)站的Cookie發(fā)送到服務(wù)器去,服務(wù)器通過讀取Cookie,得知你的相關(guān)信息,就可以做出相應(yīng)的動作。
如在頁面顯示歡迎你的標(biāo)語,或者讓你不用輸入ID、密碼就直接登錄等等。瀏覽器訪問一個站點(diǎn)時,只將屬于當(dāng)前站點(diǎn)的Cookie發(fā)過到服務(wù)器。(根據(jù)域名)—(沒必要把每家醫(yī)院的病歷本都帶過去。)Cookie不兼容瀏覽器!最好是將要保存的內(nèi)容在服務(wù)器端加密(安全),為什么?在硬盤中存放的位置與使用的操作系統(tǒng)和瀏覽器密切相關(guān)。瀏覽器保存Cookie有兩種方式:
1—瀏覽器的內(nèi)存中;
2—瀏覽器所在的電腦的硬盤中。為將要寫入到瀏覽器的Cookie對象設(shè)置失效時間:
cook.Expires=DateTime.Now.AddMinutes(5);//設(shè)置cook5分鐘后失效 開發(fā)場景:常用于登錄和保存用戶最近瀏覽商品
從瀏覽器發(fā)來的Cookie的Expires屬性值是無效的.(瀏覽器在向服務(wù)器發(fā)送Cookie的時候,沒有將Cookie的失效時間發(fā)送過去)Cookie圖注意:Cookie儲存在客戶端Cookie的操作服務(wù)器設(shè)置Cookie:
HttpCookiecok=newHttpCookie(“uId”,“10001”);//(“鍵”,”值”) cok.Expires=DateTime.Now.AddDays(18);//設(shè)置失效日期-現(xiàn)在之后的18天后context.Response.Cookies.Add(cok);//添加到響應(yīng)中服務(wù)器獲得客戶端傳來的Cookie:
stringstrUName=context.Request.Cookies[“uId”].Value;//從請求中獲得Cookie登錄示例Cookie原理--具體如何往返的?1.普通GET請求:無Cookie2.服務(wù)器通過響應(yīng)報文頭里的set-cookie向?yàn)g覽器設(shè)置Cookie信息3.瀏覽器通過請求報文頭里的Cookie傳遞瀏覽器存儲的Cookie信息提問:如果服務(wù)器兩次都輸出同一個名稱的Cookie,瀏覽器會怎么辦?如果服務(wù)器輸出兩個不同名的Cookie,瀏覽器怎么辦?如何刪除瀏覽器Cookie?補(bǔ)充:cookie.Path(為指定的文件夾生成Cookie)cookie.Domain(域/域名)Response.Cookies和Request.Cookies中間的關(guān)系–有共用部分Cookie在瀏覽器硬盤的存儲位置:
C:\DocumentsandSettings\登錄帳戶名\Cookies
可以通過開始-運(yùn)行-cookies自動打開。Cookie詳解表單是和頁面相關(guān)的,只有瀏覽器端提交了這些數(shù)據(jù),服務(wù)器端才能得到。而有時候希望在服務(wù)端任意的地方存取一些和訪問者相關(guān)的信息,這時候就不方便將這些信息保存到表單中了,因?yàn)槿绻菢拥脑挶仨氹S時注意在所有頁面表單中都保存這些信息。Cookie是和站點(diǎn)相關(guān)的,并且每次向服務(wù)器請求的時候除了發(fā)送表單參數(shù)外,還會將和站點(diǎn)相關(guān)的所有Cookie都提交給服務(wù)器,是強(qiáng)制性的。Cookie也是保存在瀏覽器端的,而且瀏覽器會在每次請求的時候都會把和這個站點(diǎn)的相關(guān)的Cookie提交到服務(wù)器,并且將服務(wù)端返回的Cookie更新到硬盤,因此可以將信息保存在Cookie中,然后在服務(wù)器端讀取、修改。服務(wù)器返回數(shù)據(jù)除了普通的html數(shù)據(jù)以外,還會返回修改的Cookie,瀏覽器把拿到的Cookie值更新本地瀏覽器的Cookie就可以。哪怕請求jpg、js、css這種文件也會帶著Cookie,因?yàn)榉?wù)器端可能要進(jìn)行Session的操作,比如判斷是否登錄?;ヂ?lián)網(wǎng)優(yōu)化的案例:圖片服務(wù)器和主站域名不一樣,降低Cookie流量的傳輸。面試時聊網(wǎng)站調(diào)優(yōu)在服務(wù)器端控制Cookie案例,一個頁面設(shè)置Cookie,一個頁面讀取Cookie設(shè)置值的頁面:Response.SetCookie(newHttpCookie("UserName",TextBox1.Text));讀取值的頁面:Label1.Text=Request.Cookies["UserName"].Value;Cookie的缺點(diǎn)和表單一樣,而且還不能存儲過多信息??蛻舳?、服務(wù)器端設(shè)置的Cookie雙方都能讀。SessionSession提供了一種把信息保存在服務(wù)器內(nèi)存中的一種方式。它能存儲任何數(shù)據(jù)類型包括自定義對象。每個客戶端的Session是獨(dú)立存儲。Session對象用于存儲有關(guān)用戶的信息。在整個用戶會話過程中都會保留此信息。(保存SessionId的cookie丟失之前)當(dāng)用戶在應(yīng)用程序中從一個網(wǎng)頁瀏覽到另一個網(wǎng)頁時,存儲在Session對象中的變量不會被丟棄。Session只可由該會話的用戶訪問(因?yàn)镾essionId的東東以cookie的方式保存訪問者瀏覽器的緩存里了)用戶不能訪問或修改他人的Session注意:當(dāng)會話過期或終止時,服務(wù)器就會清除Session對象開發(fā)場景:常用于保存登錄用戶IDSession圖Session的操作開始并為Session賦值:
Session[“uName”]=“CNYaoMing”;取值:
stringstrName=Session[“uName”].ToString();銷毀(取消/退出):
Session.Abandon();//銷毀服務(wù)器端的Session對象
Session.Clear();//清空服務(wù)端的Session對象里的鍵值對,Session對象并沒有從Session池里銷毀屬性描述SessionID唯一用戶會話標(biāo)識符TimeOut用戶超時(單位:分鐘),默認(rèn)20分鐘Count會話狀態(tài)集合中的項(xiàng)目數(shù)方法描述Abandon方法用于顯式結(jié)束會話。Session常用屬性、方法Session詳解已經(jīng)內(nèi)置了Session機(jī)制。不要放太多的對象到Session(因?yàn)榇鎯υ诜?wù)器端fw的一個輔助進(jìn)程里,不穩(wěn)定,數(shù)據(jù)多了容易丟失。),Session會有超時銷毀的機(jī)制,發(fā)帖(服務(wù)器不可能知道瀏覽器是否在開著,什么時候關(guān)閉),發(fā)帖計時,在線時間統(tǒng)計,靠請求來判斷是否活著。Cookie是存在客戶端,Session是存在服務(wù)器端,目的是一樣的:保存和當(dāng)前客戶端相關(guān)的數(shù)據(jù)(當(dāng)前網(wǎng)站的任何一個頁面都能取到Session、Cookie)。不能放太大的數(shù)據(jù),放的數(shù)據(jù)是object。如果瀏覽器禁用了Cookie可以啟用Url來傳遞SessionID??梢钥吹絊ession機(jī)制并不是Http協(xié)議規(guī)定的,是實(shí)現(xiàn)的,現(xiàn)在PHP、J
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 個人健身房設(shè)備租賃合同(2024版)3篇
- 2025版仲裁申請書行政公文范本制作與培訓(xùn)服務(wù)合同2篇
- 2025版論行政合同中行政主體權(quán)益保護(hù)與義務(wù)履約4篇
- 2024版商業(yè)房產(chǎn)銷售合同條款樣本
- 2025年度文化創(chuàng)意產(chǎn)業(yè)園區(qū)土地承包協(xié)議范本4篇
- 2025年度茶葉行業(yè)人才培訓(xùn)與就業(yè)合作合同4篇
- 二零二五年方管行業(yè)質(zhì)量標(biāo)準(zhǔn)制定合同3篇
- 2025年度智能家居系統(tǒng)瓷磚采購合同協(xié)議書4篇
- 專利技術(shù)成果應(yīng)用許可合同2024版一
- 二零二五年度裝配式建筑構(gòu)件設(shè)計、制造與施工合同3篇
- 寒潮雨雪應(yīng)急預(yù)案范文(2篇)
- 垃圾車駕駛員聘用合同
- 變壓器搬遷施工方案
- 單位轉(zhuǎn)賬個人合同模板
- 八年級語文下冊 成語故事 第十五課 諱疾忌醫(yī) 第六課時 口語交際教案 新教版(漢語)
- EPC項(xiàng)目采購階段質(zhì)量保證措施
- T-NAHIEM 101-2023 急診科建設(shè)與設(shè)備配置標(biāo)準(zhǔn)
- 四川2024年專業(yè)技術(shù)人員公需科目“數(shù)字經(jīng)濟(jì)與驅(qū)動發(fā)展”參考答案(通用版)
- 煤炭裝卸服務(wù)合同
- 廣東省佛山市順德區(qū)2023學(xué)年中考一模物理試題(含答案解析)
- 高考英語真題100個長難句(語法填空)
評論
0/150
提交評論