在Javaweb中使用cookie记录上一次访问时间
我用的是idea,创建一个servlet项目。

首先创建一个CookieUtils类

创建cookieFinder方法

import javax.servlet.http.Cookie;

public class CookieUtils {

    public static String  cookieFinder(Cookie[] cookies, String name){

        if(cookies!=null){
            //如果给的cookies数组有值 则遍历数组 有没有需要的cookie
            for (Cookie cookie:cookies){
//                如果有 则返回cookie值
                if (cookie.getName().equals(name)){
                    return cookie.getValue();
                }
            }
        }
//没有则返回null
        return null;
    }

}

然后创建一个CookieTest类 继承HttpServlet类

在doGet中写入

import javax.servlet.ServletException;
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.text.SimpleDateFormat;
import java.util.Date;

/**
 * 获取系统时间
 * 检测是否是第一次访问
 * 是则输出welcome
 * 不是则输出上次访问的时间
 **/

 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws
 ServletException, IOException {
//        获取系统时间并格式化
        String time = new SimpleDateFormat("HH:mm").format(new Date());
//        获取cookie
        Cookie[] cookies = req.getCookies();
//        检测是否是第一次访问
        String cookie_lastVisit = CookieUtils.cookieFinder(cookies, "lastVisit");
//        设置cookie
        Cookie c = new Cookie("lastVisit",time);
        //        检测是否是第一次访问
        if (cookie_lastVisit==null){
//            如果是 则输出welcome
            resp.getWriter().println("welcome");

        }else{
//            如果不是 则输出上一次的访问时间
            resp.getWriter().println(cookie_lastVisit);
        }
//        设置cookie的存活时间 int类型 可以用运算符 这是存活一小时
        c.setMaxAge(60*60);
//        向浏览器发送cookie
        resp.addCookie(c);

    }

完事

最后修改:2021 年 10 月 23 日
如果觉得我的文章对你有用,请随意赞赏