From 7df56a091e40ad7233e7583bc805e9fe75673bbb Mon Sep 17 00:00:00 2001 From: sjm <2431685932@qq.com> Date: Wed, 5 Jul 2023 10:20:09 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4cookie?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/hellogithub/servlet/DeleteCookie.java | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 src/com/hellogithub/servlet/DeleteCookie.java diff --git a/src/com/hellogithub/servlet/DeleteCookie.java b/src/com/hellogithub/servlet/DeleteCookie.java new file mode 100644 index 0000000..39bcf82 --- /dev/null +++ b/src/com/hellogithub/servlet/DeleteCookie.java @@ -0,0 +1,58 @@ +package com.hellogithub.servlet; + +import jakarta.servlet.ServletException; +import jakarta.servlet.annotation.WebServlet; +import jakarta.servlet.http.Cookie; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; + +import java.io.IOException; + +@WebServlet("/deletecookie") +public class DeleteCookie extends HttpServlet { + @Override + protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + doPost(req,resp); + } + + @Override + protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + /* +*/ +// 获取cookie数组 + Cookie[] cookies = req.getCookies(); +// 判断数组对象是否为null + if (cookies != null) { + // 遍历cookie数组 + for(Cookie cookie : cookies) { + // 获取cookie的name属性值 + String cName = req.getParameter("username"); + // 通过name属性值,获取要删除的特定cookie + if ("username".equals(cName)) { + // 找到了要删除的特定cookie,cName为要删除特定cookie的name属性值 + /* + 新建一个cookie对象 + 其name属性值和要删除的特定的cookie的name属性值完全相同 + 其value属性值可以为任意值或null + */ + Cookie nc = new Cookie(cName,null); + +// 设置新建cookie的有效时间,由于要删除特定的cookie所以设置为0 + + nc.setMaxAge(0); + /* + 设置新建cookie的path + 注意:新建cookie的path和要删除的特定cookie的path一定要相同 + 否则无法删除 + */ + nc.setPath(req.getContextPath()); + /* + 将新建的cookie响应给浏览器即删除特定的cookie + */ + resp.addCookie(nc); + } + } + } + } +}