1. 程式人生 > >servlet 資料儲存幾種方式和jsp 作用域

servlet 資料儲存幾種方式和jsp 作用域

有5個物件儲存資料:

ServletContext ---application

 當tomcat服務一啟動,資料儲存一致有效,當tomcat服務一停止,ServletContext物件消失。

session----session

  當第一次使用者輸入一個網址,且帶有一些資料,告訴web伺服器需要的檔案,web伺服器接收請求,首先建立request物件,然後建立session物件,如果這一請求包括幾個jsp頁面,那麼這些頁面全部可以共享session物件的資料,一直到web伺服器把使用者需要的網頁傳回後,request物件沒有了,session物件未銷燬,然後在客戶端cookie裡儲存一個唯一id號。

 使用者第二次請求資源時,帶有一個唯一id的引數,web伺服器一看,是同一個使用者,session繼續有用,不建立新session物件。

注意:如果web伺服器設定一個超時,如果在半小時之內,客戶端不請求資源,表示這一通話結束,web伺服器把物件session銷燬。

request--request:

   當第一次使用者輸入一個網址,且帶有一些資料,告訴web伺服器需要的檔案,web伺服器接收請求,建立request物件放客戶傳過來的引數,如果這一請求包括幾個jsp頁面,那麼這些頁面全部可以共享request物件的資料,一直到web伺服器把使用者需要的網頁傳回後,request物件銷燬。

  多次重複這一過程。

repose-----page

1、request 物件:客戶從瀏覽器的一次請求後,web伺服器建立request物件,存入所有傳過來的東西

      request物件裡面有(session物件)---

2、Session 物件:一個使用者第一次訪問網站時,伺服器建立session物件,併產生一個唯一的id 返回給客戶,讓它儲存在coockie,主要是單個使用者--對應jsp的session

protected void doPost(HttpServletRequest request,
    HttpServletResponse response)
        throws ServletException, IOException {

    HttpSession session = request.getSession();
}

Session 物件是存在request 中,表示request 物件可以和session物件相連,java中的合成技術。

session.setAttribute("userName", "theUserName");
String userName = (String) session.getAttribute("userName");

tomcat conf/web.xm  

<session-config>
        <session-timeout>30</session-timeout>
    </session-config>

  web服務號器設定一個超時,如果這個時間內使用者不操作,就清除seesion物件。

3、repose 物件:repose隨著request物件同時建立,但是沒有值,只要返回前,可以在裡面放要輸出的資料。

4、ServletContext 物件:可以表示多個sevlet,相同整個應用的存資料的物件,context 
物件是存在session物件中,表示session物件可以和context物件相連,java中的合成技術,主要是對應多個使用者。

對應jsp-----

context.setAttribute(request"someValue", "aValue");
Object attribute = context.getAttribute("someValue")

5、Cookie物件:使用者記錄一些使用者訪問網站的資訊。

Cookie cookie = new Cookie("myCookie", "myCookieValue");

response.addCookie(cookie);
Cookie[] cookies = request.getCookies();