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ì)象是完全相同的。可以使用response對(duì)象調(diào)用encodeURL()或encodeRedirectURL()方法實(shí)現(xiàn)URL重寫(xiě)。
eg:
String str=response.encodeRedirectURL("hope.jsp");
連接目標(biāo)寫(xiě)成:<%=str%>即可。
encodeURL()是本應(yīng)用級(jí)別的,encodeRedirectURL()是跨應(yīng)用的。
以下時(shí)網(wǎng)上搜索到的解析:
第一種解釋:
作用:
Encodes the specified URL for use with redirect( ) by adding an necessary session ID.
Example
Response.redirect( Response( ).encodeRedirectURL( url ) )
第二種解釋:
1.response.encodeRedirectURL(url)是一個(gè)進(jìn)行URL重寫(xiě)的方法, 使用這個(gè)方法的作用是為了在原來(lái)的url后面追加上Jsessionid 。 目的是保證即使在客戶端瀏覽器禁止了cookie的情況下,服務(wù)器端仍然能夠?qū)ζ溥M(jìn)行事務(wù)跟蹤.
2.response.sendRedirect(url) 是一個(gè)url重定向的方法, 服務(wù)器端的通過(guò)該方法,“告訴”客戶端的瀏覽器去訪問(wèn)url所指向的資源
第三種解釋:
對(duì)于要進(jìn)行跳轉(zhuǎn)時(shí)把url encode
如: response.sendRedirect(response.encodeRedirectURL("dfddf.jsp?na=上海"));
不encode時(shí)getParameter("na")是亂碼