標籤:jsp 路徑 方法 定義 標識 lang div 跟蹤 組件
1. Java Servlet API 中引用 Session 機制來追蹤客戶的狀態。Servlet API 中定義了 javax.servlet.http.HttpSession 介面,Servlet 容器必須實現這個介面。2.當一個 Session 開始時,Servlet 容器將建立一個 HttpSession 對象,Servlet 容器為 HttpSession 分配一個唯一識別碼,稱為 Session ID。Servlet 容器將 Session ID 作為 Cookie 儲存在客戶的瀏覽器中。每次客戶發出 HTTP 要求時,Servlet 容器可以從 HttpRequest 對象中讀取 Session ID,然後根據 Session ID 找到相應的 HttpSession 對象,從而擷取客戶的狀態資訊。3.當用戶端瀏覽器中禁止 Cookie,Servlet 容器無法從用戶端瀏覽器中取得作為 Cookie 的 Session ID,也就無法跟蹤客戶狀態。 Java Servlet API 中提出了跟蹤 Session 的另一種機制,如果用戶端瀏覽器不支援 Cookie,Servlet 容器可以重寫客戶請求的 URL,把 Session ID 添加到 URL 資訊中。 4. HttpServletResponse 介面提供了重寫 URL 的方法:public java.lang.String encodeURL(java.lang.String url)
該方法的實現機製為:
● 先判斷當前的 Web 元件是否啟用 Session,如果沒有啟用 Session,直接返回參數 url。
● 再判斷用戶端瀏覽器是否支援 Cookie,如果支援 Cookie,直接返回參數 url;如果不支援 Cookie,就在參數 url 中加入 Session ID 資訊,然後返回修改後的 url。
我們可以對網頁中的連結稍作修改,解決以上問題:
修改前:
<a href=“maillogin.jsp“>
修改後:
<a href=“<%=response.encodeURL(“maillogin.jsp“)%>“>
路徑URL問題