package com.hqyj.gwr.cookie;
import javax.servlet.RequestDispatcher;
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.net.URLDecoder;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.Date;
@WebServlet("/cookieDemo3")
public class CookieDemo3 extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
//得先去前端拿回前端提供的数据
String username = request.getParameter("username");
String password = request.getParameter("password");
//逻辑判断
//登陆成功
if ("zhangsan".equals(username) && ("123456").equals(password)){
//设定一个默认状态为未登录
boolean idFirstVisit =true;
//判断用户是否是第一次登录
Cookie[] cookies = request.getCookies();
for (Cookie cookie:cookies) {
//判断是否有我们的cookie
String name = cookie.getName();
if ("lastVisit".equals(name)){
idFirstVisit=false;
//说明已经登陆过了 则加上时间
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String formatNow = simpleDateFormat.format(new Date());
//创建一个新的cookie
String encode = URLEncoder.encode(formatNow, "utf-8");
Cookie cookie1 = new Cookie("lastVisit",encode);
response.addCookie(cookie1);
//得到value
String value = cookie.getValue();
String decode = URLDecoder.decode(value, "utf-8");
response.getWriter().write("欢迎回来,上次登录时间为"+decode);
}
}
if (idFirstVisit){
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String formatNow = simpleDateFormat.format(new Date());
//创建一个新的cookie
String encode = URLEncoder.encode(formatNow, "utf-8");
Cookie cookie1 = new Cookie("lastVisit",encode);
response.addCookie(cookie1);
//说明是第一次登录
response.getWriter().write("欢迎第一次登陆");
}
}else {
//登陆失败
request.setAttribute("msg","用户或密码错误");
request.getRequestDispatcher("/login2.jsp").forward(request,response);
}
}
}
package com.hqyj.gwr.servlet;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
@WebServlet("/LoginServlet3")
public class LoginServlet3 extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username = request.getParameter("username");
String password = request.getParameter("password");
if ("admin".equals(username) && "123".equals(password)){
request.getSession().setAttribute("isLogin","123");
response.sendRedirect("/success.jsp");
}else {
request.getSession().setAttribute("msg","用户名或密码错误");
response.sendRedirect("/login.jsp");
}
}
}
<%--
Created by IntelliJ IDEA.
User: THY
Date: 2022/8/17
Time: 13:42
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="/LoginServlet3" method="post">
username<input name="username" type="text">
password<input name="password" type="text">
<button type="submit">login</button>
<%-- ${requestScope.msg}--%>
<span style="color:red">${sessionScope.msg}</span>
</form>
</body>
</html>
效果如下