| 
 | 1 | +package PartTwo.CookiesServlet;  | 
 | 2 | +/* Текущая настройка у меня http://localhost:8080/my-first-cookies */  | 
 | 3 | +import jakarta.servlet.ServletException;  | 
 | 4 | +import jakarta.servlet.annotation.WebServlet;  | 
 | 5 | +import jakarta.servlet.http.Cookie;  | 
 | 6 | +import jakarta.servlet.http.HttpServlet;  | 
 | 7 | +import jakarta.servlet.http.HttpServletRequest;  | 
 | 8 | +import jakarta.servlet.http.HttpServletResponse;  | 
 | 9 | + | 
 | 10 | +import java.io.IOException;  | 
 | 11 | +import java.io.PrintWriter;  | 
 | 12 | +import java.nio.charset.StandardCharsets;  | 
 | 13 | +import java.util.Arrays;  | 
 | 14 | +import java.util.concurrent.atomic.AtomicInteger;  | 
 | 15 | + | 
 | 16 | +@WebServlet("/my-first-cookies")  | 
 | 17 | +public class CookiesServlet extends HttpServlet {  | 
 | 18 | + private static final String UNIQUE_ID = "userId";  | 
 | 19 | + private static final AtomicInteger counter = new AtomicInteger();  | 
 | 20 | + | 
 | 21 | + @Override  | 
 | 22 | + protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {  | 
 | 23 | + | 
 | 24 | + Cookie[] clientReqCookies = req.getCookies();  | 
 | 25 | + | 
 | 26 | + if (clientReqCookies == null || Arrays.stream(clientReqCookies).  | 
 | 27 | + filter(cookie -> UNIQUE_ID.equals(cookie.getName())).  | 
 | 28 | + findFirst().  | 
 | 29 | + isEmpty()) {  | 
 | 30 | + Cookie respCookieFromServer = new Cookie(UNIQUE_ID,"1");  | 
 | 31 | + respCookieFromServer.setPath("/my-first-cookies");  | 
 | 32 | + respCookieFromServer.setMaxAge(1600);  | 
 | 33 | + resp.addCookie(respCookieFromServer);  | 
 | 34 | + counter.incrementAndGet();  | 
 | 35 | + }  | 
 | 36 | + | 
 | 37 | + resp.setContentType("text/html");  | 
 | 38 | + resp.setCharacterEncoding(StandardCharsets.UTF_8.name());  | 
 | 39 | + | 
 | 40 | + try(PrintWriter writeToResponseHtml = resp.getWriter()){  | 
 | 41 | + writeToResponseHtml.write(counter.get());  | 
 | 42 | + }  | 
 | 43 | + }  | 
 | 44 | +}  | 
0 commit comments