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