cookie实现查询上次登录时间

package com.hqyj.gmr.test;

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

@WebServlet("/cookieTest02")
public class CookieTest02 extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String username = req.getParameter("username");
        String password = req.getParameter("password");
        if ("zhangsan".equals(username)&&"123456".equals(password)){
            System.out.println("登录成功");

            //设置响应的消息体的数据格式以及编码
            resp.setContentType("text/html;charset=utf-8");
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            //1.获取所有Cookie
            Cookie[] cookies = req.getCookies();

            boolean flag = false;
            //2.遍历cookie数组
            if (cookies != null && cookies.length > 0) {
                for (Cookie cookie : cookies) {
                    //3.获取cookie的名称
                    String name = cookie.getName();

                    //4.判断名称是否是:lastTime
                    if ("lastTime".equals(name)) {
                        //有该Cookie,不是第一次访问
                        flag = true;
                        //响应数据
                        //获取Cookie的value,时间
                        String value = cookie.getValue();
                        //把字符串转换long类型,再转日期类型,然后格式化时间
                        long l = Long.parseLong(value);
                        String time = sdf.format(new Date(l));

                        resp.getWriter().write("<h1>欢迎回来,您上次访问时间为:" + time + "</h1>");
                        //设置Cookie的value
                        //获取当前时间的字符串,重新设置Cookie的值,重新发送cookie
                        long millis = System.currentTimeMillis();
                        cookie.setValue(millis + "");
                        //设置cookie的存活时间
                        cookie.setMaxAge(60 * 60 * 24 * 30);//一个月
                        //相应到Cookie
                        resp.addCookie(cookie);
                        break;
                    }
                }
            }


            if (flag == false) {
                //没有,第一次访问
                //设置Cookie的value
                //获取当前时间的字符串,重新设置Cookie的值,重新发送cookie
                long timeMillis = System.currentTimeMillis();

                Cookie c = new Cookie("lastTime", timeMillis + "");
                //设置cookie的存活时间
                c.setMaxAge(60 * 60 * 24 * 30);//一个月
                resp.addCookie(c);
                resp.getWriter().write("<h1>hello,欢迎首次访问</h1>");
            }
        }else {
            //request是我们学习的第一个域对象,可以在这个作用域的范围内共享数据
            req.setAttribute("msg","用户或密码错误");

            //登录失败跳转login.jsp页面
            req.getRequestDispatcher("/login2.jsp").forward(req,resp);

        }


    }

<%--
  Created by IntelliJ IDEA.
  User: asdw
  Date: 2022/8/17
  Time: 13:41
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<form action="/cookieTest02" method="post">
        用户:<input type="text" name="username"/><br/>
        密码:<input type="password" name="password"/><br/>
        <input type="submit" value="登录"/>
</form>
<span style="color: red;font-size: 20px">${requestScope.msg}</span>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值