JavaScript Cookie записывает время последнего входа пользователя в систему.

Оглавление

Оглавление

предисловие

1. Что такое файлы cookie?

2. Анализ спроса

нуждаться:

Идеи:

3. Как судить, при каких обстоятельствах первое посещение и при каких обстоятельствах n-е посещение?

В-четвертых, код выглядит следующим образом

1. Создайте страницу входа

2. Если вход в систему выполнен успешно, оценивается, является ли это первым посещением.

V. Резюме


предисловие

Недавно я изучаю файлы 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. Резюме

Об этом я и расскажу сегодня.Эта статья лишь кратко представляет небольшое упражнение с куки-файлами.

Supongo que te gusta

Origin blog.csdn.net/weixin_52809589/article/details/126751648
Recomendado
Clasificación