Merge remote-tracking branch 'origin/master'
This commit is contained in:
58
src/com/hellogithub/servlet/DeleteCookie.java
Normal file
58
src/com/hellogithub/servlet/DeleteCookie.java
Normal file
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user