天天看點

逆水行舟之servlet學習第四天(下)

一、Session

1. 概念:伺服器端會話技術,在一次會話的多次請求間共享資料,将資料儲存在伺服器端的對象中。

2. 常用方法:

  1. 擷取HttpSession對象:

    HttpSession session = request.getSession();

  2. 使用HttpSession對象:

    Object getAttribute(String name)

    void setAttribute(String name, Object value)

    void removeAttribute(String name)

3. 原理: Session的實作是依賴于Cookie的。

4. session的特點:

  1. session用于存儲一次會話的多次請求的資料,存在伺服器端
  2. session可以存儲任意類型,任意大小的資料

5. session與Cookie的差別:

  1. session存儲資料在伺服器端,Cookie在用戶端
  2. session沒有資料大小限制,Cookie有
  3. session資料安全,Cookie相對于不安全

6. session的銷毀時間:

  1. 伺服器關閉
  2. session對象調用invalidate() 。
  3. session預設失效時間 30分鐘(可修改tomcat下的web.xml檔案中的session-config)

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

7. session與cookie的差別:

  1. session存儲資料在伺服器端,Cookie在用戶端
  2. session沒有資料大小限制,Cookie有
  3. session資料安全,Cookie相對于不安全

8. 其它

  1. 當用戶端關閉,伺服器不關閉,兩次擷取session在預設情況下不是同一個,但可以通過建立cookie,設定存活時間進行存儲

    Cookie c = new Cookie("JSESSIONID",session.getId()); c.setMaxAge(60*60); response.addCookie(c);

  2. 當用戶端不關閉,伺服器關閉,兩次擷取session也不是用一個,但是為確定資料不丢失,tomcat自動完成以下工作:

    session的鈍化:在伺服器正常關閉之前,将session對象系列化到硬碟上

    session的活化:在伺服器啟動後,将session檔案轉化為記憶體中的session對象即可。

二、Session案例

1. 需求:将session持久化存儲

2. 代碼實作:

編寫SessionServlet:

逆水行舟之servlet學習第四天(下)

編寫SessionServlet2:

逆水行舟之servlet學習第四天(下)

3. 結果

逆水行舟之servlet學習第四天(下)

續:

逆水行舟之servlet學習第四天(下)

三、JSP入門

1. 概念:Java Server Pages -> java伺服器端頁面,既可以指定定義html标簽,又可以定義java代碼。

2. 原理:JSP本質上就是一個Servlet

3. JSP的腳本:JSP定義Java代碼的方式

  1. <% 代碼 %>:定義的java代碼,在service方法中。service方法中可以定義什麼,該腳本中就可以定義什麼。
  2. <%! 代碼 %>:定義的java代碼,在jsp轉換後的java類的成員位置。
  3. <%= 代碼 %>:定義的java代碼,會輸出到頁面上。輸出語句中可以定義什麼,該腳本中就可以定義什麼。

4. JSP的内置對象(九個):在jsp頁面中不需要擷取和建立,可以直接使用的對象

1.PageContext javax.servlet.jsp.PageContext JSP的頁面容 器

2.request javax.servlet.http.HttpServletrequest 擷取使用者的請求資訊

3.response javax.servlet.http.HttpServletResponse 伺服器向用戶端的回應資訊

4.session javax.servlet.http.HttpSession 用來儲存每一個使用者的資訊

5.application javax.servlet.ServletContext 表示所有使用者的共享資訊

6.config javax.servlet.ServletConfig 伺服器配置資訊,可以取得初始化參數

7.out javax.servlet.jsp.jspWriter 頁面輸出

8.page java.lang.object)

9.exception java.lang.Throwable

四、案例

  1. 編寫JSPServlet:
    逆水行舟之servlet學習第四天(下)
    續:
    逆水行舟之servlet學習第四天(下)
  2. 編寫JSPShopping.jsp
    逆水行舟之servlet學習第四天(下)
    續:
    逆水行舟之servlet學習第四天(下)
  3. 結果
    逆水行舟之servlet學習第四天(下)

補充:

response.getWriter()和out.write()的差別:

  • 在tomcat伺服器真正給用戶端做出響應之前,會先找response緩沖區資料,再找out緩沖區資料。
  • response.getWriter()資料輸出永遠在out.write()之前

not learn to live:

難過的不是你不知道,是知道了卻什麼也做不了。這是生活給予你的無力感,更是自己對生活的一種縱容。