package com.wb.cookie;
import javax.servlet.http.Cookie;
import java.io.IOException;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.Date;
@javax.servlet.annotation.WebServlet("/CookieDemo")
public class CookieDemo extends javax.servlet.http.HttpServlet {
protected void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
this.doGet(request, response);
}
protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
//设置相应字符集
response.setContentType("text/html;charset=utf-8");
//获取Cookie
Cookie[] cookies = request.getCookies();
//遍历Cookies数组 遍历之前先进行判断,Cookies中有没有值
if (cookies != null && cookies.length > 0) {
for (Cookie cookie : cookies) {
//获取Cookie的名称
String name = cookie.getName();
//判断改名称是否为上一次访问名称
if (("lastname").equals(name)) {
//存在改cookie说明不是第一次访问
//获取当前时间,并且赋值给Cookie
String newDate = this.DateFormat();
//将格式化后的日期URL编码
newDate = URLEncoder.encode(newDate, "utf-8");
//设置Cookie
cookie.setValue(newDate);
//设置Cookie的存活时间
cookie.setMaxAge(60 * 60 * 24 * 30);
response.addCookie(cookie);
//获取相应数据
String value = cookie.getValue();
//url解码
value = URLDecoder.decode(value, "utf-8");
response.getWriter().write("欢迎回来,您上次的访问时间为" + value);
break;
}
}
} else {
String newDate = this.DateFormat();
//URL编码
newDate = URLEncoder.encode(newDate, "utf-8");
//创建Cookie
Cookie cookie = new Cookie("lastname", newDate);
//获取Cookie
String value = cookie.getValue();
//URL解码
value = URLDecoder.decode(value, "utf-8");
cookie.setMaxAge(60 * 60 * 24);
response.addCookie(cookie);
response.getWriter().write("欢迎您首次访问,当前时间是:" + value);
}
}
public String DateFormat() {
//获取当前日期
Date date = new Date();
//日期格式化
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
return sdf.format(date);
}
}
Cookie获取访问时间经典案例
最新推荐文章于 2021-05-27 13:10:20 发布