java 筆記 - 會(huì)話跟蹤

image.png

一、Cookie

(1)Cookie 基本使用

image.png

發(fā)送 cookie

package com.test.web;

import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

// 發(fā)送cookie demo
@WebServlet("/servletSetCookie")
public class ServletSetCookie extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp){
        // 創(chuàng)建cookie對(duì)象
        Cookie cookie = new Cookie("myCookie", "123123");
        // 發(fā)送cookie
        resp.addCookie(cookie);
    }
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp){
        this.doGet(req, resp);
    }
}

獲取cookie

package com.test.web;

import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

// 獲取 cookie demo
@WebServlet("/servletGetCookie")
public class ServletGetCookie extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp){
        Cookie[] cookies = req.getCookies();
        for (Cookie cookie : cookies) {

            String name = cookie.getName();
            if (name.equals("myCookie")) {
                System.out.println("成功獲取到之前設(shè)置的cookie " + name + ":" + cookie.getValue());
                break;
            }
        }
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp){
        this.doGet(req, resp);
    }
}

(2)Cookie 原理

image.png

設(shè)置cookie:后端服務(wù)通過 set-cookie:username=zs 響應(yīng)頭來告知瀏覽器創(chuàng)建一個(gè)名為username,值為zs的 cookie
獲取cookie:后端服務(wù)接收這次請(qǐng)求時(shí),在請(qǐng)求頭 cookie 里面獲取的所有cookie

(3)Cookie 細(xì)節(jié)

image.png

二、Session

(1)Session 基本使用

image.png

存儲(chǔ) Session

package com.test.web.session;

import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;

@WebServlet("/servletSetSession")
public class ServletSetSession extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp){
        // 獲取session對(duì)象
        HttpSession session = req.getSession();
        // 設(shè)置session
        session.setAttribute("username", "張三");
    }
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp){
        this.doGet(req, resp);
    }
}

獲取 Session

package com.test.web.session;

import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

@WebServlet("/servletGetSession")
public class ServletGetSession extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp){
        // 獲取session對(duì)象
        HttpSession session = req.getSession();
        Object username = session.getAttribute("username");
        System.out.println("成功獲取存儲(chǔ)的 username:" + username);
    }
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp){
        this.doGet(req, resp);
    }
}

(2)Session 原理

Session 是基于Cookie實(shí)現(xiàn)的,服務(wù)器會(huì)給客戶端存儲(chǔ)一個(gè) sessionid 的 cookie,瀏覽器每次請(qǐng)求的時(shí)候會(huì)自動(dòng)帶上這個(gè) sessionid 用于區(qū)分。

image.png

(3)Session 細(xì)節(jié)

image.png

image.png

三、Cookie和Session的區(qū)別

image.png

參考:黑馬java教程

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 從三月份找實(shí)習(xí)到現(xiàn)在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂視家的研發(fā)崗...
    時(shí)芥藍(lán)閱讀 42,873評(píng)論 11 349
  • 注:適用于 2.x 版本 1.pip 命令安裝方法 pip install Django #指定版本 Django...
    華爾街的主導(dǎo)曲閱讀 963評(píng)論 0 0
  • 1 目的 通過對(duì)主流的WEB高危漏洞表現(xiàn)形式和危害介紹,增強(qiáng)WEB應(yīng)用開發(fā)人員的安全意識(shí);以WEB應(yīng)用開發(fā)安全原則...
    果汁涼茶丶閱讀 4,479評(píng)論 0 0
  • Gin是一個(gè)用Go語言編寫的web框架。它是一個(gè)類似于martini但擁有更好性能的API框架, 由于使用了htt...
    雪上霜閱讀 1,751評(píng)論 0 1
  • 會(huì)話跟蹤技術(shù) 什么是會(huì)話?會(huì)話可簡(jiǎn)單理解為:打開瀏覽器 -> 訪問一些服務(wù)器內(nèi)容 -> 關(guān)閉瀏覽器,整個(gè)過程稱之為...
    遼A丶孫悟空閱讀 854評(píng)論 0 17

友情鏈接更多精彩內(nèi)容