cookie实现上次访问时间

简介: cookie实现上次访问时间

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
会话技术(Cookie与Session及对比)
一、基本概念 会话:一次会话中包含多次请求和响应 一次会话:浏览器第一次给服务器资源发送请求,会话建立,直到有一方断开(浏览器或客户端关闭)为止
|
3月前
|
存储 前端开发 Java
会话技术, 掌握Cookie的使用 掌握Session的使用
会话技术, 掌握Cookie的使用 掌握Session的使用
43 0
|
8月前
|
存储 程序员 PHP
修改session的过期(生存)时间
以下我以php为例,万变不离其宗,希望对大家都有用吧。 session与cookie: 了解过两者的众所都知道,有些信息保存到cookie,有些出于安全问题就不能直接存到浏览器,这就要用到session了。然而对于浏览器,一般都是默认20-30分钟自动销毁或者关闭浏览器就会销毁。这显示是很头疼的事情,比如我们要实现用户登陆功能,关闭浏览器就要重新登陆,这搞什么鬼?所以我们要去试图改变它们。网上众说纷纭,你可以选择去修改默认配置文件,如php为例,修改php.ini的函数。但是染念却不喜欢修改修改默认,也在网上看到某些程序员是没有权限修改的,所以我们需要做到如何不修改默认文件达到这样的功能。
42 0
|
9月前
|
存储 JavaScript 前端开发
cookie相关操作
cookie相关操作
44 0
|
数据安全/隐私保护
|
存储 前端开发 安全
会话技术, 掌握Cookie的使用 掌握Session的使用(下)
会话技术, 掌握Cookie的使用 掌握Session的使用
|
存储 Web App开发 编解码
会话技术, 掌握Cookie的使用 掌握Session的使用(上)
会话技术, 掌握Cookie的使用 掌握Session的使用
|
存储 Web App开发 安全
会话技术, 掌握Cookie的使用 掌握Session的使用(中)
会话技术, 掌握Cookie的使用 掌握Session的使用
|
存储 Web App开发 API
Cookie
Cookie
62 0
|
JavaScript
localStorage 设置过期时间?
localStorage 设置过期时间?
localStorage 设置过期时间?