Оглавление
3. Как судить, при каких обстоятельствах первое посещение и при каких обстоятельствах n-е посещение?
В-четвертых, код выглядит следующим образом
2. Если вход в систему выполнен успешно, оценивается, является ли это первым посещением.
предисловие
Недавно я изучаю файлы cookie JavaScript. После занятий я написал небольшое упражнение. Функция состоит в том, чтобы записывать время, когда пользователь входил в систему в последний раз. Код не оптимизирован и немного сложен.
1. Что такое файлы cookie?
1. Файл cookie — это часть данных, отправляемая сервером в браузер после того, как браузер обращается к серверу .
2. Браузер должен сохранять эти данные и не должен легко их удалять.
3. После этого браузер каждый раз при обращении к серверу должен приносить этот кусок данных.
Файлы cookie настолько просты, и это то, что они означают в веб-разработке. Файлы cookie обычно служат двум целям. Первая функция — идентифицировать пользователя.
2. Анализ спроса
нуждаться:
Когда пользователь посещает в первый раз, он отображает «Добро пожаловать, это ваш первый визит».
Когда последующие пользователи продолжают посещать, он отображает «С возвращением. Время вашего последнего посещения: гггг-ММ-дд ЧЧ: мм :SS
Совет 1. Вам необходимо использовать файлы cookie для экономии времени посещения.
Совет 2. Создайте сервлет и сделайте в нем логическое суждение, чтобы определить, существует ли созданный вами файл cookie с именем «lastVisit». Совет 3.
Сохраняйте файл cookie каждый раз, когда вы посетите это Имя файла cookie должно быть согласованным
Идеи:
1. Создайте файл cookie, чтобы сохранить время посещения (создайте файл cookie, получите значение файла cookie)
2. Создайте сервлет, чтобы определить, является ли это первым посещением
Однократное посещение, создайте файл cookie, имя файла cookie: lastVisit
3. При отображении времени, т.к. есть пробелы, поэтому требуется кодировка и декодирование
Код: URLEncoder.encode("date","utf-8");
3. Как судить, при каких обстоятельствах первое посещение и при каких обстоятельствах n-е посещение?
(1) Первое посещение
①Получить текущее время и отобразить его в браузере
②Создать объект Cookie, время является значением файла cookie, а имя – lastVisit
③Отправить файл cookie в браузер для сохранения
(2) N-е посещение
①Получить значение файла cookie, удалить файл cookie с именем lastVisit
②Получить значение файла cookie (время последнего посещения)
③Отобразить время последнего посещения в браузере
④Обновить файл cookie с именем lastVisit, установить значение на текущее время
⑤Отправить обновленный файл cookie Сохранить в браузер
В-четвертых, код выглядит следующим образом
1. Создайте страницу входа
Код выглядит следующим образом (пример):
<%-- Создано IntelliJ IDEA. Пользователь: 86155 Дата: 2022-09-06 Время: 9:27 Чтобы изменить этот шаблон, используйте File | Настройки | Шаблоны файлов. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <голова> <title>Заголовок</title> </голова> <тело> <form action="/CookieDemo1" method="post"> <span>用户名:</span><input type="text" name="username"><br> <span>密码:</span><input type="password" name="password"><br> <%--Используйте выражение el, чтобы получить значение в поле--%> <span style="color: red">${requestScope.msg}</span><br> <button type="submit">Подтвердить</button> </форма> </тело> </html>
2. Если вход в систему выполнен успешно, оценивается, является ли это первым посещением.
Код выглядит следующим образом (пример):
пакет com.hqyj.j0905.homeWork; /* * Запишите время последнего входа пользователя в систему * */ импортировать javax.servlet.ServletException; импортировать javax.servlet.annotation.WebServlet; импортировать javax.servlet.http.Cookie; импортировать javax.servlet.http.HttpServlet; импортировать javax.servlet.http.HttpServletRequest; импортировать javax.servlet.http.HttpServletResponse; импортировать java.io.IOException; импортировать java.io.PrintWriter; импортировать java.net.URLEncoder; импортировать java.text.SimpleDateFormat; импортировать java.util.Date; @WebServlet("/CookieDemo1") открытый класс CookieDemo1 расширяет HttpServlet { @Override protected void doPost (запрос HttpServletRequest, ответ HttpServletResponse) выдает ServletException, IOException { doGet(запрос, ответ); } @Override protected void doGet (запрос HttpServletRequest, ответ HttpServletResponse) выдает ServletException, IOException { //Установить стиль кодирования response.setContentType("text/html;charset=utf-8"); // получаем куки Cookie[] cookies = request.getCookies(); ///Определить тег, чтобы указать, существует ли файл cookie с указанным именем логический флаг = истина; Строка lastVisit = ноль; //Проверяем, пуст ли куки if (cookies != null || cookies.length != 0) { // обход для (куки-файл: куки-файлы) { // Получаем имя куки // Строковое имя = cookie.getName(); если (cookie.getName().equals("lastVisit")) { //Есть куки lastVisit, это уже n-ое посещение флаг = ложь; //n посещение //Получить текущее время Дата Дата = новая Дата(); //Получить отформатированный объект даты SimpleDateFormat dateFormat = новый SimpleDateFormat ("гггг-ММ-дд ЧЧ: мм: сс"); Строка formatDate = dateFormat.format(дата); //кодируем строку времени Строка timeNow = URLEncoder.encode(formatDate, "utf-8"); Cookie cookie1 = новый Cookie ("последнее посещение", timeNow); ответ.добавитьCookie(cookie1); Строковое значение = cookie.getValue();//Время последнего доступа // Декодируем полученное значение Строка valueDecode = URLEncoder.encode (значение, "utf-8"); cookie.setMaxAge(1 * 30 * 24 * 60 * 60); //3. Отправляем обновленный файл cookie в браузер //ответ.addCookie(cookie); //Получить значение и время куки //cookie.setValue(timeNow); //страница ответов Writer Writer = response.getWriter(); Writer.write("С возвращением, время вашего последнего посещения:" + valueDecode); перерыв; } } } // первое посещение. Нет файла cookie или нет файла cookie с именем lastVisit if (cookies == null || cookies.length == 0 || флаг) { //Установить значение куки // Получить строку текущего времени. Перепишите значение установленного файла cookie и повторно отправьте файл cookie. Дата Дата = новая Дата(); Формат SimpleDateFormat = новый SimpleDateFormat("гггг-ММ-дд ЧЧ:мм:сс"); Строка formatDate = format.format(дата); Строковое значение = URLEncoder.encode(formatDate, "utf-8"); //2.Создать объект cookie Cookie cookie1 = новый Cookie ("последнее посещение", значение); cookie1.setMaxAge(1 * 30 * 24 * 60 * 60);//Устанавливаем срок хранения куки на один месяц //3. Отправляем куки в браузер для сохранения ответ.добавитьCookie(cookie1); //1, отображаем текущее время в браузере response.getWriter().write("Добро пожаловать домой, это ваш первый визит"); } } }
3. Экспериментальные результаты следующие
V. Резюме
Об этом я и расскажу сегодня.Эта статья лишь кратко представляет небольшое упражнение с куки-файлами.