package com.hqyj.lls.Cookie;
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.net.URLDecoder;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.Date;
@WebServlet("/cookieDemo")
public class CookieDemo extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
// 获取所有的cookie
Cookie[] cookies = request.getCookies();
// 通过指定cookie名称来查找cookie Cookie c = new Cookie("last","当前的时间");
Cookie cookie = getCookieByName(cookies, "lastTime");
// 判断,如果cookie==null,说明是第一次访问
if (cookie == null) {
// 输出欢迎,记录当前的时间,回写到浏览器
response.getWriter().write("<h3>欢迎您的到来!</h3>");
} else {
// 获取cookie的值,输出浏览器,记录当前的时间,回写到浏览器
String value = cookie.getValue();
// 输出浏览器(cookie的值中含有 “ ”,需要进行解码)
String decode = URLDecoder.decode(value, "utf-8");
response.getWriter().write("<h3>您上次的时间是" + decode);
}
// 记录当前的时间
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String sDate = sdf.format(date);
// 回写到浏览器
// 使用cookie回写(cookie的值中含有 “ ”,需要进行编码才能使用)
String encode = URLEncoder.encode(sDate, "utf-8");
Cookie c = new Cookie("lastTime",encode);
// 设置有效时间为30秒
c.setMaxAge(30); // 秒
// 回写
response.addCookie(c);
}
//通过指定名称查找指定的cookie
public static Cookie getCookieByName(Cookie[] cookies, String name) {
// 如果数组是null
if (cookies != null) {
// 循环遍历,目的:和name进行匹配,如果匹配成功,返回当前的cookie
for (Cookie cookie : cookies) {
// 获取cookie的名称,和name进行匹配
if (cookie.getName().equals(name)) {
return cookie;
}
}
}
return null;
}
}
08-21
8876
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)