Домой Учебники по Java и J2EE Файлы cookie Java: как управлять сеансами сервлетов Java с помощью файлов cookie

Файлы cookie Java: как управлять сеансами сервлетов Java с помощью файлов cookie

604
0

Веб-страницы не имеют воспоминаний. Пользователь, переходящий со страницы на страницу, будет восприниматься сайтом как совершенно новый посетитель. Сессионные cookie-файлы позволяют веб-сайту, который вы посещаете, отслеживать ваше перемещение со страницы на страницу, чтобы вас не спрашивали о той же информации, которую вы уже предоставили сайту. Файлы cookie позволяют быстро и легко проходить через многие страницы сайта без необходимости аутентификации или повторной обработки каждой новой области, которую вы посещаете.

Но иногда в веб-приложениях на Java мы должны знать, кто является клиентом, и соответствующим образом обрабатывать запрос. Например, приложение корзины покупок должно знать, кто отправляет запрос на добавление товара и в какую корзину должен быть добавлен товар или кто отправляет запрос на оформление заказа, чтобы можно было списать сумму с корректного клиента.

Сеанс — это диалоговое состояние между клиентом и сервером, и он может состоять из нескольких запросов и ответов между клиентом и сервером. Так как HTTP и веб-сервер не имеют состояния, единственный способ поддерживать сеанс — это когда некоторая уникальная информация о сеансе (идентификатор сеанса) передается между сервером и клиентом в каждом запросе и ответе.

Теперь давайте создадим простой динамический веб-проект в Eclipse, который объясняет управление сеансами сервлетов Java с использованием файлов cookie.

Вот шаги:

  1. Создать динамический веб-проект: CrunchifySessionManagementByCookie
  2. crunchify-login.html : Создать страницу приветствия приложения
  3. CrunchifyLoginServlet.java — Это заботится о запросе на вход
  4. CrunchifyLogoutServlet.java — Это заботится о запросе выхода
  5. web.xml — Файл дескриптора развертывания ( не видите web.xml? Следуйте этому руководству )
  6. CrunchifyLoginSuccessful.jsp — Успешный запрос пересылается LoginSuccess.jsp этот файл cookie будет использоваться для отслеживания сеанса. Также обратите внимание, что время ожидания файла cookie установлено на 60 минут.

Другой должен прочитать:

1. crunchify-login.html

crunchify-login.html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
< ! DOCTYPE html ПУБЛИЧНЫЙ — // W3C // DTD HTML 4.01 Transitional // EN http://www.w3.org/TR/html4/loose.dtd >
< html >
< голова >
< meta httpэквивалент = Тип содержимого content = text / html; charset = US-ASCII >
< title > Хруст Авторизоваться форма сессия управление от Печенье < / title >
type = text / css>
тело {
     фоновое изображение : url ( 'https://cdn.crunchify.com/bg.png' ) ;
}
< / head >
< тело >
     < div align = center >
         <Бр> <Бр>
         < form action = CrunchifyLoginServlet method = post >
             Введите ваше имя пользователя : < input type = text name = crunchifyUser >
             <Бр> Введите ваш пароль : < input type = password
                 name = crunchifyPassword > <Бр> <Бр> <Бр> < вход
                 type = submit value = Логин >
         < / form >
     < / div >
< / body >
< / html >

2. CrunchifyLoginServlet.java

CrunchifyLoginServlet.java

Джава
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
пакет ком . crunchify. учебные пособия ;
Импортировать Java. Ио. IOException ;
Импортировать Java. Ио. PrintWriter ;
Импортировать javax. сервлет. RequestDispatcher ;
Импортировать javax. сервлет. ServletException ;
Импортировать javax. сервлет. аннотация . WebServlet ;
Импортировать javax. сервлет. http . Печенье ;
Импортировать javax. сервлет. http . HttpServlet ;
Импортировать javax. сервлет. http . HttpServletRequest ;
Импортировать javax. сервлет. http . HttpServletResponse ;
/ *
* Автор: Crunchify.com
*
* /
/ **
* Класс реализации сервлета LoginServlet
* /
@WebServlet ( / CrunchifyLoginServlet )
общественности учебный класс CrunchifyLoginServlet продолжается HttpServlet {
     частный статический окончательный долго serialVersionUID знак равно ;
     частный окончательный строка Идентификатор пользователя знак равно CrunchifyUser ;
     частный окончательный строка пароль знак равно CrunchifyPassword ;
     защищенный недействительным doPost ( запрос HttpServletRequest , HttpServletResponse response ) бросает ServletException , IOException {
         // получаем параметры запроса для идентификатора пользователя и пароля
         строка crunchifyUser знак равно запрос . getParameter ( crunchifyUser ) ;
         строка PWD знак равно запрос . getParameter ( crunchifyPassword ) ;
         если ( userID . равно ( crunchifyUser ) && password.equals (pwd)) {
Cookie crunchifyCookie = new Cookie (crunchifyUser, crunchifyUser);
             // установка cookie на истечение 60 минут
             crunchifyCookie . setMaxAge ( 60 * 60 ) ;
             ответ . addCookie ( crunchifyCookie ) ;
             ответ . sendRedirect ( CrunchifyLoginSuccess.jsp ) ;
         } еще {
             RequestDispatcher rd знак равно getServletContext ( ) . getRequestDispatcher ( https://cdn.crunchify.com/crunchify-login.html ) ;
             PrintWriter out знак равно ответ . getWriter ( ) ;
             вне. println ( Пожалуйста, убедитесь, что вы ввели UserID / Pass as / CrunchifyUser: CrunchifyPassword /. / n ) ;
             радиолярии включить ( запрос , ответ ) ;
         }
     }
}

3. CrunchifyLogoutServlet.java

CrunchifyLogoutServlet.java

Джава
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
пакет ком . crunchify. учебные пособия ;
Импортировать Java. Ио. IOException ;
Импортировать javax. сервлет. ServletException ;
Импортировать javax. сервлет. аннотация . WebServlet ;
Импортировать javax. сервлет. http . Печенье ;
Импортировать javax. сервлет. http . HttpServlet ;
Импортировать javax. сервлет. http . HttpServletRequest ;
Импортировать javax. сервлет. http . HttpServletResponse ;
/ *
* Автор: Crunchify.com
*
* /
/ **
* Класс реализации сервлета LogoutServlet
* /
@WebServlet ( / CrunchifyLogoutServlet )
общественности учебный класс CrunchifyLogoutServlet продолжается HttpServlet {
     частный статический окончательный долго serialVersionUID знак равно ;
     защищенный недействительным doPost ( запрос HttpServletRequest , HttpServletResponse response ) бросает ServletException , IOException {
         ответ . setContentType ( text / html ) ;
         Cookie loginCookie знак равно ноль ;
         Cookie [ ] печенье знак равно запрос . getCookies ( ) ;
         если ( печенье ! знак равно ноль ) {
             за ( Cookie cookie : печенье ) {
                 если ( cookie . getName ( ) . equals ( crunchifyUser ) ) {
                     loginCookie знак равно печенье ;
                     перерыв ;
                 }
             }
         }
         если ( loginCookie ! знак равно ноль ) {
             loginCookie . setMaxAge ( 0 ) ;
             ответ . addCookie ( loginCookie ) ;
         }
         ответ . sendRedirect ( crunchify-login.html ) ;
     }
}

4. web.xml

web.xml

1
2
3
4
5
6
7
8
9
10
xml version = 1.0 encoding = UTF-8 ?>
< webapp / css>
тело {
     фоновое изображение : url ( 'https://cdn.crunchify.com/bg.png' ) ;
}
< / head >
< тело >
     < div align = center >
         <Бр> <Бр>
         <%
             строка имя_пользователя знак равно ноль ;
             Cookie [ ] печенье знак равно запрос . getCookies ( ) ;
             если ( печенье ! знак равно ноль ) {
                 за ( Cookie печенье : печенье ) {
                     если ( cookie . getName ( ) . equals ( crunchifyUser ) )
                         имя_пользователя знак равно печенье . getValue ( ) ;
                 }
             }
             если ( userName == ноль )
                 ответ . sendRedirect ( crunchify-login.html ) ;
         %>
         < h3 >
             Привет
             <% = userName %> , Войти успешно .
         < / h3 >
         <Бр>
         < form action = CrunchifyLogoutServlet method = post >
             < input type = submit значение = Выйти >
         < / form >
     < / div >
< / body >
< / html >

Теперь давайте запустим этот пример:

1) Развертывание CrunchifySessionManagementByCookie Проект Tomcat и запустить Tomcat .

2) Укажите URL вашего браузера по адресу http: // localhost: 8080 / CrunchifySessionManagementByCookie / crunchify-login.html

3) Страница успеха

4) Неудачная страница входа

Теперь, как проверить, правильно ли установлен Cookie. Попробуйте скачать любой Cookie Manager Extension и вы должны увидеть Cookie в вашем браузере, как показано ниже.

Файлы cookie Java: как управлять сеансами сервлетов Java с помощью файлов cookie

0.00 (0%) 0 votes

ЧИТАТЬ ТАКЖЕ:  Java 11 и Как исправить java.lang. TypeNotPresentException: введите javax.xml.bind.JAXBContext Exception?

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь