package com.ghgj.cookie;
import java.io.IOException;
import java.net.URL;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.util.*;
import java.text.SimpleDateFormat;
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;
@WebServlet("/CookieTime")
public class CookieTime extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
@SuppressWarnings("deprecation")
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//设置响应的消息体的数据格式以及编码,避免中文乱码问题
response.setCharacterEncoding("utf-8");
response.setContentType("text/html;charaset=utf-8");
//1.获取所有的Cookie
Cookie[] cookies = request.getCookies();
boolean flag=false;//这里设置一个标记是为了判断cookie里面是不是带有lastTime
if (cookies!=null&&cookies.length>0) {
//治理是为了寻找cookie里面带有Lasttime的cookie
for (Cookie cookie : cookies) {
//2.获取cookie的名称,并进行判断
String name = cookie.getName();
if ("lastTime".equals(name)) {
flag=true;//这里flag能进来说明cookie是带有lastTime的
//每次再一次登录时又会获得一个上一次的时间,所以这里需要设置时间,再获取时就会覆盖掉上一次的时间,重新发送cookie值
Date date=new Date();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日:HH分:mm秒:ss毫秒");
String str_data = sdf.format(date);
String str_date = URLEncoder.encode(str_data, "utf-8");//先编码
cookie.setValue(str_data);
cookie.setMaxAge(6);
response.addCookie(cookie);
//响应数据,并且获取时间
String value = cookie.getValue();
String value1 =URLDecoder.decode(value, "utf-8");//再解码
response.getWriter().write("<h1>欢迎回来,您上次的访问时间是:"+value1+"</h1>");
}
}
}
//这里的flag是false时说明cookie不带lastTime
if (cookies==null||cookies.length==0||flag==false) {
Date date=new Date();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日:HH:mm:ss");
String str_data = sdf.format(date);
String value1 = URLEncoder.encode(str_data, "utf-8");
Cookie cookie=new Cookie("lastTime", value1);
response.addCookie(cookie); //把cookie添加到浏览器里面
cookie.setMaxAge(6);
response.getWriter().write("<h1>欢迎您首次使用</h1>");
}
}
}