печенье в Java помнить время пользователя Логин Case

Требования:

  1. Посетите Servlet, если это первый визит, подсказка: Здравствуйте, добро пожаловать на ваш первый визит.
  2. Если это не первый визит, подсказка: Добро пожаловать назад, ваш последний раз визита: отображает строку времени

Анализ:

1 . Cookie может быть достигнут с помощью
 2 . В Servlet сервера определить , есть ли печенье называется LastTime 
    2. 1 является: не первым посещение
           данных 1. Response: Добро пожаловать, ваше последнее время визита: 2019 4 октября 11:50:20 
          2. обратной записи Cookie: LastTime = 2019 Nian 4 октября 11:50:01 
    2.2 не является: это первый визит
           в данных ответа: привет, добро пожаловать в ваш первый визит
           2. написать назад Cookie: LastTime = 2019 Нянь 10 Юэ 4 Ri 11:50:01

 

Реализация кода:

  1  импорт javax.servlet.ServletException;
  2  импорт javax.servlet.annotation.WebServlet;
  3  импорта javax.servlet.http.Cookie;
  4  импорт javax.servlet.http.HttpServlet;
  5  импорта javax.servlet.http.HttpServletRequest;
  6  импортных javax.servlet.http.HttpServletResponse;
  7  импорт java.io.IOException;
  8  импорта java.net.URLDecoder;
  9  импорта java.net.URLEncoder;
10  импорта java.text.SimpleDateFormat;
11  импорта java.util.Date;
12  
13  / ** 
14     помнить пользователем Логин случае время
 15   * / 
16 @WebServlet ( "/ CookieServlet" )
 . 17  общественного  класса CookieServlet расширяет HttpServlet {
 18      защищен  недействительным в doPost (HttpServletRequest запрос, HttpServletResponse Response) бросает ServletException, IOException {
 . 19          // ответное сообщение установки форматов тела, и кодированные данные 
20 является          response.setContentType ( "текст / html;. = кодировка UTF - 8" );
 21  
22          // 1 вспомогательное оборудование печенья. 
23          печенье [] = печенье request.getCookies ();
24          Boolean В Flag = ложь ;   // по умолчанию нетых куков не LastTime
 25          // 2. куки траверс массива 
26 является          IF (= Куки! Нулевой && cookies.length> 0 {)
 27              для (печенья печенья: печенье) {
 28                  // 3 приобретает. Все имена печенья 
29                  название : String = Cookie.getName ();
 30                  // 4. определяет , является ли имя LastTime 
31 ,                  если ( "LastTime" .equals (имя)) {
 32                      // есть печенье, не первый доступ 
33                      в Flag = истина ;
34  
35                      // Получить значение куки
 36                      // данные отклика
 37                      // Получить значение куки, S Время 
38 является                      строковое значение = cookie.getValue ();
 39  
40                      System.out.println ( "перед декодированием:" + значение);
 41                      // URL - адрес декодера 
42                      значение URLDecoder.decode = (значение "UTF - 8" . ;)
 43                      System.out.println ( "декодируется:" + значение);
 44  
45  
46                      // установить значение куки
 47                      // Получить строка текущее время, сбросить значение куки, повторно отправить куки 
48 
49                      Дата Date = новый Date ();
50                      SimpleDateFormat SDF = новый SimpleDateFormat ( "гггг年ММ月дд日HH: мм: сс" );
51                      Строка str_date = sdf.format (дата);
52  
53                      System.out.println ( "编码前:" + str_date);
54                      // URL - 编码
55                      str_date = URLEncoder.encode (str_date, "UTF-8" );
56                      System.out.println ( "编码后:" + str_date);
57  
58                      cookie.setValue (str_date);
59  
60                     // установить время выживания печенья из 
61                      cookie.setMaxAge (60 * 60 );
 62                      response.addCookie (печенье)
 63  
64-  
65                      response.getWriter () Записать ( «<h1> Добро пожаловать, ваш последний раз визита: "+ значение +" </ h1 о> " );
 66  
67                      ПАУЗА ;
 68                  }
 69              }
 70          }
 71  
72          IF (Куки == NULL || cookies.length == == 0 || В флага к ложным ) {
 73              // нет, первый визит
 74  
75              //Установить значение куков
 76              // получить текущее строку времени установить значение куков, передает куки 
77  
78              а Дата = новую новая дата ();
 79              SimpleDateFormat SDF = новая новый SimpleDateFormat ( «Дата YYYY, ММ-дд чч: мм: сс» )
 80              Строка str_date = sdf.format (ДАТА);
 81              Cookie печенье = новый новый Cookie ( "LastTime" , str_date);
 82  
83              // разрешающее время существуют специальные символы , используя URL - кодирование 
84              System.out.println ( «кодирование назад: «+ str_date);
 85              // URL - адрес кодирования 
86             = URLEncoder.encode str_date (str_date, "UTF - 8" . );
 87              System.out.println ( "кодированный:" + str_date);
 88  
89              cookie.setValue (str_date);
 90  
91              // установить время выживания печенья из 
92              cookie.setMaxAge (60 * 60 );
 93              response.addCookie (Cookie),
 94  
95              . response.getWriter () Write ( "<h1> Добро пожаловать на первом доступе </ h1> о" );
 96          }
 97      }
 98  
99      защищен  недействительным doGet (запрос HttpServletRequest, HttpServletResponse в ответ) броскиServletException, IOException {
 100          это .doPost (запрос, ответ);
101      }
 102 }

 

рекомендация

отwww.cnblogs.com/niujifei/p/11622746.html