久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Response 對(duì)象encodeURL 與encodeRedirectURL

 炫光83 2013-04-07

public java.lang.String encodeURL(java.lang.String url)

Encodes the specified URL by including the session ID in it, or, if encoding is not needed, returns the URL unchanged. The implementation of this method includes the logic to determine whether the session ID needs to be encoded in the URL. For example, if the browser supports cookies, or session tracking is turned off, URL encoding is unnecessary.
public java.lang.String encodeRedirectURL(java.lang.String url)
Encodes the specified URL for use in the sendRedirect method or, if encoding is not needed, returns the URL unchanged. The implementation of this method includes the logic to determine whether the session ID needs to be encoded in the URL. Because the rules for making this determination can differ from those used to decide whether to encode a normal link, this method is separete from the encodeURL method.
從API可以看出不管是encodeURL還是encodeRedirectURL都要判斷是否需要添加sessionid  例如 String str=response.encodeURL("index.jsp"); 變量str保存的值為
index.jsp;jsessionid=A9B0F04345178E7BDC3626EAF666D34C 如果沒(méi)有禁用Cookie,,刷新瀏覽器str為index.jsp.

出現(xiàn)以上情況是因?yàn)閟ession 與cookie 成對(duì)使用的.第一次訪問(wèn)頁(yè)面時(shí)cookie中sessionid沒(méi)有值(或者值為空)故encodeURL認(rèn)為需要添加jsessionid需要傳遞session對(duì)象,,重寫(xiě)了URL但是在沒(méi)有禁用cookie瀏覽器中第一訪問(wèn)頁(yè)面時(shí)cookies對(duì)象會(huì)保存sessionid 故再次刷新不再需要重寫(xiě)URL.

 

session對(duì)象能和客戶建立意義對(duì)應(yīng)的關(guān)系依賴于客戶的瀏覽器是否支持cookie,如果客戶的瀏覽器不支持的話,那么客戶再不同網(wǎng)頁(yè)之間的session對(duì)象可能時(shí)互不相同的,,因?yàn)榉?wù)器無(wú)法將ID存放到客戶端,就不能建立session對(duì)象和客戶的一一對(duì)應(yīng)關(guān)系??梢酝ㄟ^(guò)URL重寫(xiě)來(lái)實(shí)現(xiàn)session對(duì)象的唯一性。所謂URL重寫(xiě)就是當(dāng)客戶從一個(gè)頁(yè)面重新連接到一個(gè)頁(yè)面時(shí),,通過(guò)向這個(gè)新的URL添加參數(shù),,把session對(duì)象的id傳過(guò)去,這樣能夠保證session對(duì)象是完全相同的??梢允褂胷esponse對(duì)象調(diào)用encodeURL()或encodeRedirectURL()方法實(shí)現(xiàn)URL重寫(xiě),。

eg:

String str=response.encodeURL("hope.jsp");  //使用在jsp頁(yè)面中。

連接目標(biāo)寫(xiě)成:<%=str%>即可,。

encodeURL()是本應(yīng)用級(jí)別的,,encodeRedirectURL()是跨應(yīng)用的。  

 兩者的區(qū)別:

在使用重定向時(shí),,response.sendRedirect(response.encodeRedirectURL(***));時(shí)一定要使用encodeRedirectUrl();

由于附加在URL中的session ID是動(dòng)態(tài)產(chǎn)生的,,對(duì)每一個(gè)用戶是不同的,所以對(duì)于靜態(tài)頁(yè)面的相互跳轉(zhuǎn),,URL重寫(xiě)機(jī)制無(wú)能為力,。當(dāng)然可以通過(guò)將靜態(tài)頁(yè)面轉(zhuǎn)換為動(dòng)態(tài)頁(yè)面解決。


方法的執(zhí)行:首先判斷當(dāng)前的Servlet是否執(zhí)行了HttpSession對(duì)象的invalidate()方法(當(dāng)前session是否失效,,失效后重新建立新的session),,如果已經(jīng)執(zhí)行返回參數(shù)URL。接下來(lái)判斷客戶端是否禁用了Cookie,,沒(méi)有禁用直接返回參數(shù)URL,,如果禁用,則在參數(shù)URL中附加session ID,,返回編碼后的URL,。


 

 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多