package com.ghgj.cookie;
import java.io.IOException;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.Date;
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("/CookieTime3")
public class CookieTime3 extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//设置编码
request.setCharacterEncoding("utf-8");
Cookie[] cookies = request.getCookies();
if (cookies==null||cookies.length==0) {
//首先如果cookie是空的话,就创建一个cookie,并且创建一个值和名字放到cookie里面去
Date date=new Date();
SimpleDateFormat sif=new SimpleDateFormat("yyyy年MM月dd日:HH时mm分ss秒");
String str_date = sif.format(date);
//对时间做一个编码
String values = URLEncoder.encode(str_date, "utf-8");
//新建一个cookie,他是携带时间的
Cookie cookie=new Cookie("lastTime", "utf-8");
//设置cookie的最大生命周期
cookie.setMaxAge(6);
//把cookie放到浏览器里面去
response.addCookie(cookie);
response.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
response.getWriter().write("<h1>亲爱的用户,您是首次访问哦!</h1>");
}else{
//遍历整个cookie
for (Cookie c: cookies) {
//判断cookie是否是上一次登录的,通过他的名字lastTime来确定是同一个cookie
if ("lastTime".equals(c.getName())) {
Date date=new Date();
SimpleDateFormat sif=new SimpleDateFormat("yyyy年MM月dd日:HH时mm分ss秒");
String str_date = sif.format(date);
//对时间做一个编码
String values = URLEncoder.encode(str_date, "utf-8");
//给cookie设置一个值,这个值就是时间
c.setValue(values);
c.setMaxAge(6);
//把一个有值的cookie放入浏览器中
response.addCookie(c);
//获取cookie里面的时间这个值
String val = c.getValue();
//对时间做一个解码
String time = URLDecoder.decode(val,"utf-8");
//对相应的信息做一个编码,以防中文乱码情况
response.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
response.getWriter().write("<h1>亲爱的用户,您上一次的登录时间是:"+time+"</h1>");
}
}
}
}
}