Servlet會話跟蹤的幾個小「課後題」

1.如何建立和使用Cookie?java

2.簡述session的工做原理瀏覽器

3.使session失效的3種方法是什麼?關閉瀏覽器能夠使session失效嗎?服務器

4.HttpServletResponse中支持URL重寫的兩個方法是什麼?有什麼區別?session

5.簡述ServletContext的生命週期函數

6.在Servlet中,如何獲取與當前Web應用程序相關聯的ServletContext對象?this


1.如何建立和使用Cookie?url

  Servlet API中提供了javax.servlet.http.Cookie類,能夠經過構造函數建立Cookie,
spa

例如:Cookie c1 = new Cookie("name","value");code


2.簡述session的工做原理orm

(1).當客戶端向服務器端初次提交請求時,請求中並不包含SessionID。

(2).服務器端的Servlet容器會根據getSession()方法建立一個HttpSession對象,並分配一個SessionID。HttpSession對象保存在服務器端,此時的HttpSession處於新會話狀態。

(3).服務器將處理請求的相應結果連同SessionID回傳到客戶端

(4).當客戶再次提交請求時會將請求連同其SessionID一塊兒提交給服務器。

(5).服務器接收到請求以及SeesionID後,將請求和保存在服務器端的session對象聯繫起來,根據SessionID判斷哪些鏈接是來自同一個客戶端的會話範圍內的鏈接。此時的session對象已不是新的會話

(6).循環執行(3)~(5)步,知道session失效。


3.使session失效的3種方法是什麼?關閉瀏覽器能夠使session失效嗎?

session失效的三種方式:

(1)顯示的調用HttpSession.invalidate()方法

(2)客戶端兩次訪問的間隔時間已經超過了session的有效時間

(3)服務器端被關閉

因此很明顯:關閉服務器不會使session失效,session失效通常是經過session存活時間設置的最大有效時間


4.HttpServletResponse中支持URL重寫的兩個方法是什麼?有什麼區別?


(1).「String encodeURL(String url) 」:重寫超級連接、form表單的action值

(2).「String encodeRedirectedURL(String url)」:重寫重定向的URL地址


5.簡述ServletContext的生命週期

(1)當新的Servlet容器啓動時,服務器端會建立一個ServletContext對象。

(2)Servlet容器運行期間,ServletContext對象一直存在。運行於Servlet容器內的Servlet之間能夠共享ServletContext對象中的信息資源。

(3)當Servlet容器中止工做時,ServletContext 對象會被銷燬,ServletContext生命週期結束。


6.在Servlet中,如何獲取與當前Web應用程序相關聯的ServletContext對象?


例子:

ServletContext ctx =this.getServletContext(); //實例化一個Servlet】Context對象 Integer userCount = (Integer) ctx.getAttribute("userCount");  //經過getAttribute(「name」)獲得想要的屬性
相關文章
相關標籤/搜索