會話技術、Cookie簡單使用
會話技術、Cookie的API
會話技術:使用者開一個瀏覽器,訪問一個網站,只要不關閉該瀏覽器,不管該使用者點選多少個超連結,訪問多少資源,直到使用者關閉瀏覽器,整個這個過程我們稱為一次會話。
使用會話技術做什麼
1、在論壇登陸的時候,很多時候會有一個小框框問你是否要自動登陸,當你下次登陸的時候就不用輸入密碼了。
2、根據我以前瀏覽過的商品,猜我喜歡什麼商品。
Cookie
會話跟蹤技術有Cookie和Session,Cookie技術是先出現的。
Cookie技術:
網頁之間的互動是通過HTTP協議傳輸資料的,而Http協議是無狀態的協議。無狀態的協議是什麼意思呢?一旦資料提交完後,瀏覽器和伺服器的連線就會關閉,再次互動的時候需要重新建立新的連線。
伺服器無法確認使用者的資訊,於是乎,W3C就提出了:給每一個使用者都發一個通行證,無論誰訪問的時候都需要攜帶通行證,這樣伺服器就可以從通行證上確認使用者的資訊。通行證就是Cookie。
Cookie的流程:瀏覽器訪問伺服器,如果伺服器需要記錄該使用者的狀態,就使用response向瀏覽器傳送一個Cookie,瀏覽器會把Cookie儲存起來。當瀏覽器再次訪問伺服器的時候,瀏覽器會把請求的網址連同Cookie一同交給伺服器。
Cookie API
-
Cookie類用於建立一個Cookie物件
-
response介面中定義了一個addCookie方法,它用於在其響應頭中增加一個相應的SetCookie頭欄位
-
request介面中定義了一個getCookies方法,它用於獲取客戶端提交的Cookie
常用的Cookie方法:
public Cookie(String name,String value)
setValue與getValue方法
setMaxAge與getMaxAge方法
setPath與getPath方法
setDomain與getDomain方法
getName方法
簡單使用Cookie
public class CookieTest extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //設定response編碼 resp.setContentType("text/html;charset=UTF-8"); //建立Cookie物件 Cookie cookie = new Cookie("username","jiuyue"); //傳送Cookie給瀏覽器需要設定Cookie的時間 cookie.setMaxAge(1000); //向瀏覽器傳送一個cookie resp.addCookie(cookie); resp.getWriter().write("向瀏覽器傳送了一個Cookie"); }