Cookie技術
一、什么是 Cookie?
1、Cookie 翻譯過來是餅干的意思, 2、Cookie 是服務器通知客戶端保存鍵值對的一種技術, 3、客戶端有了 Cookie 后,每次請求都發送給服務器, 4、每個 Cookie 的大小不能超過 4kb二、如何創建 Cookie
2.1、創建Cookie的流程

2.2、具體操作
①創建一個JavaEE工程

② 將cookie的演示檔案拷貝到web目錄下


③ 創建一個包用來存放Servlet程式

④ 將BaseServlet拷貝到創建的包下

⑤ 創建CookieServlet程式
package com.zixue.servlet; import javax.servlet.ServletException; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; /** * @author Mr Guo * @create 2020-11-16 14:49 */ public class CookieServlet extends BaseServlet{ protected void createCookie(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //1.創建Cookie Cookie cookie = new Cookie("key1", "value1"); //2.通知客戶端保存Cookie resp.addCookie(cookie); //1.創建Cookie Cookie cookie1 = new Cookie("key2", "value2"); //2.通知客戶端保存Cookie resp.addCookie(cookie1); resp.getWriter().write("Cookie創建成功"); } }
⑥ 修改cookie.html頁面中創建Cookie的地址

⑦解決回應中文亂碼問題

⑧ 啟動專案,瀏覽器訪問cookie.html頁面

三、服務器如何獲取 Cookie
服務器獲取客戶端的 Cookie 只需要一行代碼:req.getCookies():獲取到一個Cookie[]陣列,3.1、獲取流程
3.2、具體操作
① 在CookieServlet程式中創建getCookie方法用于獲取Cookie
protected void getCookie(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { Cookie[] cookies = req.getCookies(); for (Cookie cookie : cookies) { //getName方法回傳Cookie的key //getValue方法回傳Cookie的value resp.getWriter().write("Cookie[" + cookie.getName() + "=" + cookie.getValue() + "]<br/>"); } }
② 修改cookie.html頁面獲取Cookie的訪問地址

③ 瀏覽器訪問

3.3、獲取某個key的Cookie
有時候,我們要獲取某個特定的Cookie,比如key1,而這種情況開發中很長見,具體操作如下:
① 創建CookieUtils工具類

② 宣告一個方法,用來查找指定名稱的Cookie物件
public class CookieUtils { /** * 查找指定名稱的Cookie物件 * @param name * @param cookies * @return 如果回傳null,表示沒有這個名稱對應的Cookie物件,否則就是找到了指定名稱的cookie物件 */ public static Cookie findCookie(String name, Cookie[] cookies){ if (name == null || cookies == null || cookies.length == 0){ return null; } for (Cookie cookie : cookies) { if (name.equals(cookie.getName())){ return cookie; } } return null; } }
③ CookieServlet程式中查找指定的Cookie物件
protected void getCookie(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { Cookie[] cookies = req.getCookies(); Cookie iWantCookie = CookieUtils.findCookie("key1", cookies); if (iWantCookie != null){ resp.getWriter().write("找到了需要的Cookie"); } }
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/220206.html
標籤:其他
上一篇:一口氣帶你讀懂80年IT發展史
