Java如何在Servlet中删除Cookie?

Servlet API没有提供直接的方法来删除Servlet应用程序中的cookie。如果要删除cookie,则必须创建一个与要删除的cookie具有相同名称的cookie,并将其值设置为空字符串。您还需要将Cookie的最长使用期限设置为0。然后将此cookie添加到servlet的响应对象。

让我们看下面的代码示例:

package org.nhooo.example.servlet;

import javax.servlet.ServletException;
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;
import java.io.IOException;

@WebServlet(name = "DeleteCookieServlet", urlPatterns = "/deleteCookie")
public class DeleteCookieServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        //
        // 要删除Cookie,我们需要创建一个具有相同Cookie的Cookie
        //用我们要删除的Cookie命名。我们还需要设置
        // Cookie的最长使用期限为0,然后将其添加到Servlet的
        // 应对方法。
        //
        Cookie cookie = new Cookie("username", "");
        cookie.setMaxAge(0);
        response.addCookie(cookie);
    }
}