删除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,这会导致浏览器立即删除这个Cookiecookie.setMaxAge(0);  // 0表示立即删除// 设置Cookie为HttpOnly,提高安全性cookie.setHttpOnly(true);  // true表示只允许HTTP(S)访问,禁止JavaScript等脚本访问// 将Cookie添加到HTTP响应中,发送给浏览器response.addCookie(cookie);// 在服务器控制台打印一条消息,表示Cookie已被删除System.out.println("删除了cookie");}
}
-  Name(名称): 这是Cookie的标识符。例如,“username”。 
-  Value(值): 这是与Cookie名称相关联的实际数据。例如,“john_doe”。 
-  Domain(域): 指定哪些主机可以接收Cookie。例如,“example.com”。 
-  Path(路径): 指定服务器上的哪些路径可以接收Cookie。例如,"/"表示整个网站。 
-  Expiration(过期时间): 指定Cookie何时失效。可以是具体日期或"Session"(表示浏览器关闭时Cookie就失效)。 
-  Secure(安全标志): 如果设置为true,则Cookie只能通过HTTPS发送。 
-  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,表示立即过期)来实现的。
