1. 程式人生 > >jsp&cookie&session-01

jsp&cookie&session-01

包含 jsp 不同的 request 輸出 表達式 甜點 -c getname

案例1-記錄用戶上次訪問時間
需求:
  當用戶第一次登錄的時候,提示:你是第一次訪問,且記錄該次訪問時間,
  下一次訪問的時候,獲取上一次訪問時間且展示出來
技術分析:
  會話技術
  cookie
  jsp

jsp:
  java server pages(java服務器頁面)
  本質上jsp就是一個servlet,在html代碼中嵌套java代碼,
  運行在服務器端,處理請求,生成動態的內容.
  對應的java和class文件在tomcat目錄下的work目錄
  後綴名 .jsp

執行流程:
  1.瀏覽器發送請求,訪問jsp頁面
  2.服務器接受請求,jspSerlvet會幫我們查找對應的jsp文件


  3.服務器將jsp頁面翻譯成java文件.
  4.jvm會將java編譯成.class文件
  5.服務器運行class文件,生成動態的內容.
  6.將內容發送給服務器,
  7.服務器組成響應信息,發送給瀏覽器
  8.瀏覽器接受數據,解析展示

jsp的腳本:
  <%...%> java程序片段
    生成成jsp的service方法中
  <%=...%> 輸出表達式
    生成成jsp的service方法中,相當於在java中調用out.print(..)
  <%!...%> 聲明成員
    成員位置.


會話技術
  當用戶打開瀏覽器的時候,訪問不同的資源,直到用戶將瀏覽器關閉,可以認為這是一次會話.
  作用:
    因為http協議是一個無狀態的協議,它記錄不了上次訪問的內容.用戶在訪問過程中難免會產生一些數據,
    通過會話技術就可以將起保存起來.
  例如:
    用戶登錄
    驗證碼
    購物車
    訪問記錄
    .....
分類:
  cookie:瀏覽器端會話技術
  session:服務器端會話技術

cookie:(小餅幹 小甜點)
  cookie是由服務器生成,通過response將cookie寫回瀏覽器(set-cookie),保留在瀏覽器上,

  下一次訪問,瀏覽器根據一定的規則攜帶不同的cookie(通過request的頭 cookie),我們服務器就可以接受cookie
  cookie的api:
    new Cookie(String key,String value)
  回瀏覽器:
    response.addCookie(Cookie c)
  獲取cookie:
    Cookie[] request.getCookies()
  cookie的常用方法:
    getName():獲取cookie的key(名稱)
    getValue:獲取指定cookie的值

案例1-步驟分析:
  1.創建一個serlvet RemServlet 路徑:/rem
  2.在servlet中:
    獲取指定cookie 例如:名稱為 lastTime
    request.getCookies()
    判斷cookie是否為空
      若為空:提示信息 第一次訪問
      若不為空:
        獲取此cookie的value
        展示信息:你上次訪問時間是....
      將這次訪問時間記錄,寫會瀏覽器

cookie-總結:
  常用方法:
    setMaxAge(int 秒):設置cookie在瀏覽器端存活時間 以秒為單位
      若設置成 0:刪除該cookie(前提必須路徑一致)
    setPath(String path):設置cookie的路徑.
      當我們訪問的路徑中包含此cookie的path,則攜帶
      默認路徑:
        訪問serlvet的路徑,從"/項目名稱"開始,到最後一個"/"結束
        例如:
          訪問的serlvet路徑:/day11/a/b/hello
          默認路徑為:/day11/a/b
        手動設置路徑:以"/項目名"開始,以"/"結尾;

jsp&cookie&session-01