cookie技術和Session技術(服務器)


cookie技術是客戶端
cookie技術是一個打開瀏覽器訪問某個站點(網頁等),到關閉相關瀏覽器成功之間的一個會話。
他也就是字面意義上的緩存。
它是面向客戶端的一個技術。
重點是服務器如何將cookie發送到客戶端,
服務器如何接受客戶端攜帶的cookie。
服務器→客戶端cookie(響應頭發送)

 

它的操作:
創建對象
Cookie cookie =new Cookie(“name”,“iPhone 11”); 鍵值對方式。不可以存中文。
cookie.setMaxAge(60*2);設置cookie在客戶端的存取時間。
設置cookie的攜帶路徑,也就是只有訪問規定的路徑的時候才能訪問成功。
cookie.setPath("/WEB05");訪問包下的所有都可以
cookie.setPath("WEB05/SendCookidServlet");訪問固定路徑
cookie.setPath("/");訪問所有的資源路徑
如果不寫的話可以訪問該cookie的所有可攜帶路徑

Cookie不能存儲中文

//獲取session對象
        HttpSession session=request.getSession();
        //向session域中賦值
        session.setAttribute("name", "花開不紀年");
        //獲取當前JSESSIONID------為了不讓瀏覽器關了就沒有,用同名的cookie對象替代一次會話結束就消失的cookie對象。
        String id=session.getId();
        //創建cookie對象
        Cookie cookie=new Cookie("JSESSIONID",id);
        //設置持久化時間
        cookie.setMaxAge(60*2);
        //設置攜帶路徑
        cookie.setPath("/WEB06");
        //發送cookie
        response.addCookie(cookie);

cookie因為是客戶端,所以它是

向客戶端發送cookie
response.addCookie(cookie);

如果想要刪除cookie就是頂一個一個同名的持久化cookie來進行覆蓋。
Session技術(服務器)
它相當於起一個中轉的作用,同時它還是一個域。

//獲取當前請求客戶端的session對象,只要不關閉瀏覽器,就用的是一個session
        HttpSession session=request.getSession();

setAttribute(name,value);
getAttribute(name);

后面用的非常之多。

    request.setCharacterEncoding("UTF-8");
        List<Fuwu> list=fuwuService.getZixun();
        request.setAttribute("GetFuwu", list);
        request.getRequestDispatcher("/right.jsp").forward(request, response);
如這里就是獲取到service層的方法,然后將其集合存儲到session域中,並且請求轉發到right.jsp文件,jsp文件就可以通過域名,來循環遍歷域中值。

 

 

它的流程是當客戶端請求服務器時,Session域調用HttpSession session=request.getSession();
給每一個請求的對象都創一個session域,並且獲得JSEESIONID響應給客戶端。
然后客戶端就可以拿着JESSSIONID用Cookie再去請求結算,服務器拿着id去session域尋找,完成后SET-Cookie響應給客戶端信息。 注意:一次響應結束,因為cookie一次會話結束的技術不會再響應,如果重新獲取的請求需要創建新的域。


如果不想關閉瀏覽器重新創建session,需要用cookie技術的同名同路徑持久化時間設置的長一些。
生命周期時候調用request.getSession時創建。

創建時機

  1:這個瀏覽器在servlet中第一次使用session的時候會創建;

  2:這個瀏覽器第一次訪問jsp的時候,服務器也會為這個瀏覽器創建一個session對象;

2:銷毀時機

  1:程序員調用invalidate方法;(立刻銷毀)

  2:設置的存活時間到了;(默認是30分鍾)

  3:服務器非正常關閉;(突然斷電)
30分鍾結束或者關閉瀏覽器。
學習了攜帶web層的登錄驗證和驗證碼校驗,區別是web層代替cotroller+view層

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM