- 因为你在setValue(value)之后还要写一行代码
response.addCookie(cookie);
- 下面是一个简单的servlet,当我没有加上面的那句话的时候,cookie的值一直不更新,加上去就更新了.
- CookieUtil是我写的一个工具类,也粘在下面了
package com.itheima.servlet;
import com.itheima.util.CookieUtil;
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;
import java.text.SimpleDateFormat;
import java.util.Date;
@WebServlet(name = "Servlet04",urlPatterns = "/test4")
public class Servlet04 extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request,response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
Cookie[] cookies = request.getCookies();
Cookie cookie = CookieUtil.findCookie(cookies,"test");
if(cookie == null){
response.getWriter().write("之前没有cookie");
Date date = new Date();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd-HH:mm:ss");
response.addCookie(new Cookie("test",simpleDateFormat.format(date)));
}else{
response.getWriter().write(cookie.getValue());
Date date = new Date();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd-HH:mm:ss");
cookie.setValue(simpleDateFormat.format(date));
//response.addCookie(cookie);
}
}
}
package com.zzti.util;
import javax.servlet.http.Cookie;
public class CookieUtil {
public static Cookie findCookie(Cookie[] cookies, String name){
if(cookies!=null){
for(Cookie cookie:cookies){
if(cookie.getName().equals(name)){
return cookie;
}
}
}
return null;
}
}