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>