jsp的四種回話技術

Cookie:服務器在一個應答首部傳遞給瀏覽器的名稱/值對。瀏覽器保存的時間由cookie的過期時間屬性來指定。當瀏覽器向某個服務器發送一個請求時,它會檢查其保存的cookie,並在請求首部中包含從同一臺服務器上接收到的所有cookie。
  Session tracking:在瀏覽器和服務器之間不直接傳送所有的狀態信息,而只是傳遞表示符(session ID)。瀏覽器發送sessionID,服務器跟蹤與該會話相關聯的所有信息。傳遞sessionID可以通過cookie和URL複寫技術,大部分容器都支持這兩種技術。服務器無法分辨用戶是否關閉了瀏覽器,因此關閉瀏覽器意味着與先前的會話關聯的所有會話數據都保留在服務器上,直到會話超時,服務器銷燬會話對像。 ?跟蹤同一會話中的請求的會話ID可以有多種方法,主要有cookie和url複寫。
  URL複寫:把會話ID編碼在URL中。 例:counter.jjsp;jsessionnid=be8d697876787876befdbde898789098980 這樣,即使瀏覽器不支持cookie,也能夠實現會話跟蹤。對於URL複寫,服務器從請求的URI中提取出會話ID,並把該請求與相應的會話關聯起來,然後在訪問會話數據的時候,JSP頁面所進行的處理方式就和使用cookie跟蹤會話id時所使用的方式完全相同。所以sesssion的實現要依靠cookie或URL複寫技術。如果想爲不支持cookie的瀏覽器提供會話跟蹤,就必須使用行爲對應用程序中的所有URL進行復寫。這意味着應用程序中的所有頁面(至少是那些帶有對其他頁面引用的頁面)都必須是JSP頁面,這樣頁面引用才能以動態方式進行編碼,如果遺漏了一個uri,那麼服務就會失去對會話的跟蹤。
  隱藏表單域:隱藏表單域是將會話ID添加到HTML的隱藏表單中(類型爲hidden的input)。重定向和轉發可以使用兩種方法來調用另一個頁面,重定向和轉發。 i) 轉發: 轉發,JSP容器將使用一個內部方法來調用目標頁面,新的頁面繼續處理同一個請求,而瀏覽器不會知道這個過程涉及到了多個頁面。瀏覽器URL會保持不變。 ii) 重定向: 重定向與轉發不同,重定向時,第一個頁面會通知瀏覽器發送一個新的目標頁面的請求。瀏覽器所顯示的URL會變成新頁面的URL。重定向的速度比轉發要慢,因爲瀏覽器得發出一個新的請求。同時,由於重定向產生了一個新的請求,所以經過一次重定向之後請求作用域內的對象將無法再使用了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章