华南俳烁实业有限公司

考試首頁(yè) | 考試用書 | 培訓(xùn)課程 | 模擬考場(chǎng) | 考試論壇  
全國(guó)  |             |          |          |          |          |         
  當(dāng)前位置:計(jì)算機(jī)等級(jí) > 二級(jí)考試 > Web程序設(shè)計(jì) > WEB輔導(dǎo) > 文章內(nèi)容
  

計(jì)算機(jī)二級(jí)考試WEB程序復(fù)習(xí)重點(diǎn):Web應(yīng)用程序狀態(tài)管理方式

中華IT學(xué)院   【 】  [ 2017年6月18日 ]

  Web應(yīng)用程序狀態(tài)管理方式:

  隱藏字段、Cookie、HttpSession、URL重寫

  為什么需要狀態(tài)管理?

  根本原因是由于Http協(xié)議是無(wú)狀態(tài)的造成的

  什么是Cookie?原理?如何使用?

  Cookie原理:

  ession是一種保存上下文信息的機(jī)制,它是針對(duì)每一個(gè)用戶的,變量的值保存在服務(wù)器端,通過(guò)SessionID來(lái)區(qū)分不同的客戶,session是以Cookie或URL重寫為基礎(chǔ)。默認(rèn)使用Cookie來(lái)實(shí)現(xiàn),系統(tǒng)會(huì)創(chuàng)造一個(gè)名為JSESSIONID的輸出Cookie,或稱為SessionCookie,以區(qū)別PersistentCookies(通常所說(shuō)的Cookie).SessionCookie是存儲(chǔ)在瀏覽器中,并不是寫在硬盤上的,但是把瀏覽器的Cookie禁止后,使用response對(duì)象的encodeURL或encodeRedirectURL方法編碼URL,WEB服務(wù)器會(huì)采URL重寫的方式傳遞Sessionid,用戶就可以在地址欄看到j(luò)sessionid=A09JHGHKHU68624309UTY84932之類的字符串。

  通常SessionCookie是不能跨窗口使用,當(dāng)用戶新開了一個(gè)瀏覽器進(jìn)入相同的頁(yè)面時(shí),系統(tǒng)會(huì)賦予用戶一個(gè)新的SessionID,這樣信息共享的目的就達(dá)不到,此時(shí)可以把SessionID保存在PersistentCookie中,然后再新的窗口中讀出來(lái),就可以得到上一個(gè)窗口的SessionID了,這樣通過(guò)SessionCookie和PersistentCookie的結(jié)合,實(shí)現(xiàn)了跨窗口的會(huì)話跟蹤。

  Cookie和會(huì)話狀態(tài)

  什么是Cookie?

  Cookie是一小段文本信息,伴隨著用戶請(qǐng)求和頁(yè)面在Web服務(wù)器和瀏覽器之間傳遞。用戶每次訪問(wèn)站點(diǎn)時(shí),Web應(yīng)用程序都可以讀取Cookie包含的信息。Cookie的基本工作原理如果用戶再次訪問(wèn)站點(diǎn)上的頁(yè)面,當(dāng)該用戶輸入U(xiǎn)RLwww.*****.com時(shí),瀏覽器就會(huì)在本地硬盤上查找與該URL相關(guān)聯(lián)的Cookie。如果該Cookie存在,瀏覽器就將它與頁(yè)面請(qǐng)求一起發(fā)送到您的站點(diǎn)。

  Cookie有哪些用途?

  最根本的用途是:Cookie能夠幫助Web站點(diǎn)保存有關(guān)訪問(wèn)者的信息。更概括地說(shuō),Cookie是一種保持Web應(yīng)用程序連續(xù)性(即執(zhí)行“狀態(tài)管理”)的方法.使Web站點(diǎn)記住您.

  什么是會(huì)話Session?

  當(dāng)用戶訪問(wèn)您的站點(diǎn)時(shí),服務(wù)器會(huì)為該用戶創(chuàng)建唯一的會(huì)話,會(huì)話將一直延續(xù)到用戶訪問(wèn)結(jié)束。

  session的工作原理

  就session的實(shí)現(xiàn)而言,好像是這樣的:

  (1)當(dāng)有Session啟動(dòng)時(shí),服務(wù)器生成一個(gè)唯一值,稱為SessionID(好像是通過(guò)取進(jìn)程ID的方式取得的)。

  (2)然后,服務(wù)器開辟一塊內(nèi)存,對(duì)應(yīng)于該SessionID。

  (3)服務(wù)器再將該SessionID寫入瀏覽器的cookie(一些在網(wǎng)頁(yè)的源代碼中有所體現(xiàn))。

  (4)服務(wù)器內(nèi)有一進(jìn)程,監(jiān)視所有Session的活動(dòng)狀況,如果有Session超時(shí)或是主動(dòng)關(guān)閉,服務(wù)器就釋放該內(nèi)存塊。

  (5)當(dāng)瀏覽器連入IIS(服務(wù)器)時(shí)并請(qǐng)求的ASP(腳本語(yǔ)言)內(nèi)用到Session時(shí),IIS(服務(wù)器)就讀瀏覽器Cookie中的SessionID。

  (6)然后,服務(wù)檢查該SessionID所對(duì)應(yīng)的內(nèi)存是否有效。

  (7)如果有效,就讀出內(nèi)存中的值。

  (8)如果無(wú)效,就建立新的Session。

  注意:

  (1)在大瀏覽量的網(wǎng)站,Session并不保險(xiǎn),我們過(guò)去的網(wǎng)站就經(jīng)常碰到存在Session中得值不正確(可能出現(xiàn)重復(fù)的SessionID)。

  (2)SessionID不能從硬盤上的Cookie文件獲得,如果想在客戶端獲知自己的SessionID,只能通過(guò)Javascrīpt來(lái)讀取。

  會(huì)話失效的三種情況(服務(wù)器重啟/關(guān)閉、會(huì)話超時(shí)(-1永不失效)、invalidate())

  設(shè)置鍵值對(duì)setAttribute(key,value);Objectobj=getAttribute(key);

  為什么需要URL重寫?Stringstr=HttpServletResponse.encodeURL(Stringurl);url;jsessionid=sessionid

  對(duì)于搜索引擎而言,在主觀上對(duì)靜態(tài)頁(yè)面和動(dòng)態(tài)頁(yè)面并沒(méi)有特殊的好惡,只是很多動(dòng)態(tài)頁(yè)面的參數(shù)機(jī)制不利于搜索引擎收錄,而靜態(tài)頁(yè)面更容易收錄而已。此外,頁(yè)面靜態(tài)化在一定程度上也提高了頁(yè)面訪問(wèn)速度和系統(tǒng)性能及穩(wěn)定性—-這使得在搜索引擎優(yōu)化上面,為使得效果更加明顯,問(wèn)題簡(jiǎn)單快速解決,大家對(duì)站點(diǎn)的靜態(tài)化非常的看重。

  URL應(yīng)當(dāng)是用戶友好的;

  URL應(yīng)當(dāng)是可讀的;

  URL應(yīng)當(dāng)是可預(yù)測(cè)的;

  URL應(yīng)當(dāng)是統(tǒng)一的;

  URL面向搜索引擎是友好的;

分享到:
本文糾錯(cuò)】【告訴好友】【打印此文】【返回頂部
將考試網(wǎng)添加到收藏夾 | 每次上網(wǎng)自動(dòng)訪問(wèn)考試網(wǎng) | 復(fù)制本頁(yè)地址,傳給QQ/MSN上的好友 | 申請(qǐng)鏈接 | 意見留言 TOP
關(guān)于本站  網(wǎng)站聲明  廣告服務(wù)  聯(lián)系方式  站內(nèi)導(dǎo)航  考試論壇
Copyright © 2007-2013 中華考試網(wǎng)(Examw.com) All Rights Reserved
五指山市| 刚察县| 金昌市| 安新县| 怀柔区| 张家川| 板桥市| 镶黄旗| 永济市| 专栏| 石阡县| 永年县| 远安县| 虎林市| 洪洞县| 义马市| 棋牌| 梅河口市| 京山县| 中山市| 南木林县| 淮安市| 甘肃省| 玛多县| 江孜县| 志丹县| 皋兰县| 黔西县| 黑水县| 类乌齐县| 红原县| 九龙坡区| 福清市| 贺兰县| 陇南市| 莲花县| 论坛| 辽阳市| 余干县| 大竹县| 中卫市|