session對象能和客戶建立意義對應的關系依賴于客戶的瀏覽器是否支持cookie,如果客戶的瀏覽器不支持的話,那么客戶再不同網頁之間的session對象可能時互不相同的,因為服務器無法將ID存放到客戶端,就不能建立session對象和客戶的一一對應關系。可以通過URL重寫來實現session對象的唯一性。所謂URL重寫就是當客戶從一個頁面重新連接到一個頁面時,通過向這個新的URL添加參數,把session對象的id傳過去,這樣能夠保證session對象是完全相同的。可以使用response對象調用encodeURL()或encodeRedirectURL()方法實現URL重寫。
eg:
String str=response.encodeRedirectURL("hope.jsp");
連接目標寫成:<%=str%>即可。
encodeURL()是本應用級別的,encodeRedirectURL()是跨應用的。
以下時網上搜索到的解析:
第一種解釋:
作用:
Encodes the specified URL for use with redirect( ) by adding an necessary session ID.
Example
Response.redirect( Response( ).encodeRedirectURL( url ) )
第二種解釋:
1.response.encodeRedirectURL(url)是一個進行URL重寫的方法, 使用這個方法的作用是為了在原來的url后面追加上Jsessionid 。 目的是保證即使在客戶端瀏覽器禁止了cookie的情況下,服務器端仍然能夠對其進行事務跟蹤.
2.response.sendRedirect(url) 是一個url重定向的方法, 服務器端的通過該方法,“告訴”客戶端的瀏覽器去訪問url所指向的資源
第三種解釋:
對于要進行跳轉時把url encode
如: response.sendRedirect(response.encodeRedirectURL("dfddf.jsp?na=上海"));
不encode時getParameter("na")是亂碼