代码实现:
public class LoginTimeServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
Cookie[] cookies = request.getCookies();
if (cookies!=null) {
//布尔变量用来判断是否是第一次登录
boolean temp = true;
//遍历cookie,看有没有记录登录时间的那个cookie
for (Cookie cookie : cookies) {
//如果有则表示已经存在
if ("logintime".equals(cookie.getName())) {
temp=false;
String time = cookie.getValue();
response.getWriter().write("上次登录时间:"+time+"<br/>");
//获取当前时间并且进行格式化
Date date = new Date();
SimpleDateFormat sFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String d = sFormat.format(date);
//将新的时间设置给cookie
cookie.setValue(d);
response.addCookie(cookie);
response.getWriter().write("本次登录时间:"+d);
}
}
//如果在cookie中没有找到记录时间的那个cookie则创建一个新的cookie并且将当前时间赋值给它
if (temp) {
createNewTime(response);
}
//如果在cookie为空则创建一个新的cookie并且将当前时间赋值给它
}else {
createNewTime(response);
}
}
public static void createNewTime(HttpServletResponse response) throws IOException {
Date date = new Date();
SimpleDateFormat sFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String d = sFormat.format(date);
Cookie cookie = new Cookie("logintime", d);
response.addCookie(cookie);
response.getWriter().write("登录时间:"+d);
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}