1. 程式人生 > 其它 >Cookie共享以及Cookie的特點和作用

Cookie共享以及Cookie的特點和作用

Cookie共享以及Cookie的特點和作用

Cookie共享問題:

  假設在一個tomcat伺服器中,部署了多個web專案,那麼在這些web專案中cookie能不能共享?

    預設情況下cookie不能共享

    方法:

      setPath(String  path):設定cookie的獲取範圍,預設情況下,設定當前的虛擬目錄

        如果要共享,則可以將path設定為 " / "

當前專案:

@WebServlet("/CookieDemo4")
public class CookieDemo5 extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //建立Cookie物件
        Cookie cookie = new Cookie("msg", "張三");
        //設定path,讓當前伺服器下部署的所有專案共享cookie資訊
        cookie.setPath("/");

        //傳送Cookie
        response.addCookie(cookie);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doPost(request, response);
    }
}

其他專案:

@WebServlet("/CookieDemo2")
public class CookieDemo2 extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //獲取Cookie
        Cookie[] cookies = request.getCookies();
        //獲取資料,遍歷Cookies
        if (cookies!=null){
            for (Cookie c : cookies) {
                String name = c.getName();
                String value = c.getValue();
                System.out.println(name+":"+value);
            }
        }
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doPost(request, response);
    }
}

不同的tomcat伺服器間cookie共享問題?

  setDomain(String  path):如果設定一級域名相同,那麼多個伺服器之間cookie可以共享

    setDomain(" .baidu.com "),那麼tieba.baidu.com和news.baidu.com中cookie可以共享

Cookie的特點和作用:(用於儲存少量資料 俗稱:小餅乾)

1.cookie儲存資料在客戶端瀏覽器

2.瀏覽器對於單個cookie 的大小有限制(4kb) 以及 對同一個域名下的總cookie數量也有限制(20個)

  作用:

    cookie:一般用於儲存少量的不太敏感的資料

    在不登陸的情況下,完成伺服器對客戶端的身份識別