Dengan pembangunan Internet yang berterusan, pembangunan aplikasi rangkaian menjadi semakin penting. Dalam proses ini, pengurusan negeri amat penting untuk permohonan. Sama ada log masuk pengguna, troli beli-belah, sejarah penyemakan imbas atau status lain, mereka perlu diuruskan.
Dengan seni bina pemisahan bahagian hadapan dan belakang, RESTful API telah menjadi kaedah pembangunan bahagian pelayan arus perdana. Dalam klien API, kuki ialah kaedah storan keadaan yang paling biasa. Artikel ini akan memperkenalkan cara menggunakan Java Servlet Cookie untuk pengurusan keadaan klien API.
Kuki ialah fail teks kecil yang boleh disimpan pada klien (biasanya penyemak imbas) untuk menyimpan maklumat status berkaitan aplikasi . Apabila pengguna mengakses aplikasi web, aplikasi boleh menghantar kuki ke penyemak imbas pengguna melalui pengepala respons HTTP dan penyemak imbas menyimpan kuki secara setempat. Pada kali seterusnya pengguna melawat aplikasi, penyemak imbas akan menghantar kuki yang dikaitkan dengannya secara automatik dan aplikasi boleh membaca maklumat keadaan daripada kuki.
Kuki mempunyai ciri berikut:
Cookie cookie = new Cookie("cookie_name", "cookie_value");
response.addCookie(cookie);
Cookie[] cookies = request.getCookies();
for (Cookie cookie : cookies) { if (cookie.getName().equals("cookie_name")) { String cookieValue = cookie.getValue(); // Do something with cookieValue } }
import javax.servlet.ServletException; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.Optional; import java.util.UUID; public class SessionServlet extends javax.servlet.http.HttpServlet { private static final long serialVersionUID = -3436700273785948283L; private static final String SESSION_COOKIE_NAME = "session_id"; @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("text/html"); resp.setCharacterEncoding("UTF-8"); Optional<Cookie> sessionCookie = getSessionCookie(req); sessionCookie.ifPresent(cookie -> { resp.getWriter().write(String.format("Found session cookie with value %s ", cookie.getValue())); }); if (!sessionCookie.isPresent()) { String sessionId = generateSessionId(); Cookie newSessionCookie = new Cookie(SESSION_COOKIE_NAME, sessionId); resp.addCookie(newSessionCookie); resp.getWriter().write(String.format("No session cookie found, created session with id %s ", sessionId)); } } private String generateSessionId() { return UUID.randomUUID().toString(); } private Optional<Cookie> getSessionCookie(HttpServletRequest req) { Cookie[] cookies = req.getCookies(); if (cookies != null) { for (Cookie cookie : cookies) { if (cookie.getName().equals(SESSION_COOKIE_NAME)) { return Optional.of(cookie); } } } return Optional.empty(); } }
Atas ialah kandungan terperinci Pembangunan backend Java: Pengurusan keadaan klien API menggunakan Java Servlet Cookies. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!