Требования:
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 }