1.需求:
- 访问一个servlet,如果是第一次访问,则提示:你好,欢迎你首次访问
- 如果不是第一次访问,则提示:欢迎回来,你上次访问的时间为:显示时间
2.分析
1.可以用cookie来完成
2.在服务器中的servlet判断是否有一个名为last_time的cookie
- 有,不是第一次访问
- 没有: 是第一次访问
3.代码实现如下:
package com.lili.servlet.cookie; 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; import java.io.IOException; import java.io.PrintWriter; import java.text.SimpleDateFormat; import java.util.Date; /** * @author: QiJingJing * @create: 2021/7/31 */ @WebServlet("/lastTime") public class LastTimeServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 设置编码信息 response.setCharacterEncoding("utf-8"); request.setCharacterEncoding("utf-8"); response.setContentType("text/html"); // 需要显示的日期类型 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH:mm:ss"); // 获取所有cookie信息 Cookie[] cookies = request.getCookies(); PrintWriter out = response.getWriter(); boolean flag = false; if (cookies != null) { for (Cookie cookie : cookies) { if ("last_time".equals(cookie.getName())) { flag = true; out.write("<h1>欢迎回来,你上次访问时间为" + cookie.getValue() + "</h1>"); // 设置新值 cookie.setValue(sdf.format(new Date())); response.addCookie(cookie); } } } // 判断是否为第一次访问 if (!flag) { response.getWriter().write("<h1>这是你第一次访问</h1>"); // 添加cookie response.addCookie(new Cookie("last_time", sdf.format(new Date()))); } } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } }