记住上一次的访问时间
需求:
1.访问一个servlet,如果第一次访问,则提示:您好,欢迎首次访问
2.如果不是第一次访问,则提示:欢迎回来,您上一次访问时间为:显示时间
分析:
1.可以采用Cookie来完成
2.在服务器中的Servlet判断是否有一个名为lastTime的Cookie
——有:不是比一次访问
————欢迎回来,您上一次访问时间为:显示时间
————写回Cookie:lastTime=时间
——没有:是第一次访问
————响应数据:您好欢迎首次访问
————写回Cookie:lastTime=时间
此处就是简单的用增强for去循环一遍所有的 饼干 仅对是否是第一次出现 做了判断 后边具体的判断的并没有出现,其实可以简单理解为 时间变量给饼干 并在这个过程中判断 饼干是否是第一次 出现
package com.qiku.web;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
@WebServlet(name = "homeworkServlet",urlPatterns = "/homework")
public class HomeworkServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//写在页面上 并设置编码格式
resp.setContentType("text/html;charset=utf-8");
//拿到所有的饼干
Cookie[] cookies = req.getCookies();
//初始化
String lastTime=null;
for (Cookie c: cookies) {
if ("lastTime".equals(c.getName())) {
lastTime = c.getValue();
break;
}
}
//做出限制条件
if(lastTime == null){
resp.getWriter().println("欢迎首次登录!");
}else{
resp.getWriter().println("您上次访问的时间为:"+lastTime);
}
//接下来就是登录并显示时间
Date date = new Date();
//定义时间格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒");
//把时间传递过去 并以对应格式显示
String format = sdf.format(date);
//需要饼干了
Cookie cookie = new Cookie("lastTime", format);
//设置饼干的存活时间
cookie.setMaxAge(30);
resp.addCookie(cookie);
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
}
首次登录截图
再次登录截图



