欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

cookie实现上次访问时间

程序员文章站 2024-03-20 13:59:52
...

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 {

    }
}
相关标签: java_web