删除Cookie原理

在这里插入图片描述
在这里插入图片描述

@WebServlet("/deletecookie")  // 这个注解指定了Servlet的URL映射路径
public class DeleteCookieServlet extends HttpServlet {  // 定义一个继承自HttpServlet的类
    @Override  // 重写父类的方法
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 创建一个新的Cookie对象
        Cookie cookie = new Cookie("name", "设置信息");  // "name"是Cookie的名称,"设置信息"是Cookie的值

        // 设置Cookie的路径
        cookie.setPath(request.getContextPath());  // 使用当前Web应用的上下文路径

        // 将Cookie的最大存活时间设置为0,这会导致浏览器立即删除这个Cookie
        cookie.setMaxAge(0);  // 0表示立即删除

        // 设置Cookie为HttpOnly,提高安全性
        cookie.setHttpOnly(true);  // true表示只允许HTTP(S)访问,禁止JavaScript等脚本访问

        // 将Cookie添加到HTTP响应中,发送给浏览器
        response.addCookie(cookie);

        // 在服务器控制台打印一条消息,表示Cookie已被删除
        System.out.println("删除了cookie");
    }
}
  1. Name(名称): 这是Cookie的标识符。例如,“username”。

  2. Value(值): 这是与Cookie名称相关联的实际数据。例如,“john_doe”。

  3. Domain(域): 指定哪些主机可以接收Cookie。例如,“example.com”。

  4. Path(路径): 指定服务器上的哪些路径可以接收Cookie。例如,"/"表示整个网站。

  5. Expiration(过期时间): 指定Cookie何时失效。可以是具体日期或"Session"(表示浏览器关闭时Cookie就失效)。

  6. Secure(安全标志): 如果设置为true,则Cookie只能通过HTTPS发送。

  7. HttpOnly(HTTP专用): 如果设置为true,JavaScript不能访问这个Cookie,这增加了安全性。

在您提供的代码中:

  • Cookie cookie = new Cookie("name", "设置信息") 设置了Name和Value。
  • cookie.setPath(request.getContextPath()) 设置了Path。
  • cookie.setMaxAge(0) 设置了Expiration(在这个例子中,0表示立即删除)。
  • cookie.setHttpOnly(true) 设置了HttpOnly标志。

这个图表和解释应该能帮助你更好地理解Cookie的结构和在代码中如何操作Cookie。记住,删除Cookie实际上是通过创建一个同名的新Cookie,并将其过期时间设置为过去的时间(在这个例子中是0,表示立即过期)来实现的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值