CookieServlet 설명

이 서블릿은 클라이언트에게 쿠키를 생성하고 전송하는 역할을 합니다. 해당 서블릿이 실행되면 "username"이라는 이름으로 "tetz"라는 값을 가진 쿠키가 생성되고, 이 쿠키가 클라이언트에게 전송됩니다.

각 코드의 개념 설명

  1. 패키지 및 import 문

    package org.tetz.boardservlet;
    
    import javax.servlet.*;
    import javax.servlet.http.*;
    import javax.servlet.annotation.WebServlet;
    import java.io.IOException;
    import java.io.PrintWriter;
    • package org.tetz.boardservlet;: 이 클래스가 포함된 패키지를 지정합니다.
    • import: 서블릿 기능을 구현하기 위해 필요한 라이브러리를 포함합니다.
  1. 클래스 선언 및 어노테이션
@WebServlet("/setCookie")
public class CookieServlet extends HttpServlet {
  • @WebServlet("/setCookie"): 이 서블릿이 /setCookie URL 패턴으로 매핑됨을 나타냅니다.

URL 패턴으로 매핑된다는 것은 특정 URL 경로가 요청될 때 해당 URL에 대응하는 서블릿(Servlet)이 실행된다는 것을 의미합니다. 이를 통해 웹 애플리케이션은 사용자의 요청을 적절한 처리기로 전달하고, 요청에 대한 응답을 생성할 수 있습니다.

<URL 패턴 매핑의 개념>
1.URL 패턴:
• URL 패턴은 웹 애플리케이션에서 특정 서블릿이나 다른 리소스가 처리해야 할 URL 경로를 지정하는 규칙입니다.
• 예를 들어, /setCookie라는 URL 패턴은 사용자가 http://yourdomain.com/setCookie로 요청할 때 해당 요청을 처리할 서블릿을 지정합니다.
2.서블릿 매핑:
• 서블릿 매핑은 URL 패턴과 서블릿 클래스 간의 연결을 설정하는 것입니다.
• 이 매핑을 통해 웹 서버는 어떤 URL이 요청되었을 때 어떤 서블릿을 호출해야 하는지 알 수 있습니다.
-public class CookieServlet extends HttpServlet: HttpServlet을 확장하여 새로운 서블릿 클래스를 정의합니다.

  1. doGet 메서드

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 쿠키 생성
        Cookie userCookie = new Cookie("username", "tetz");
        userCookie.setMaxAge(7);
        response.addCookie(userCookie);
    
        PrintWriter out = response.getWriter();
        out.println("<html><body>");
        out.println("<h1>쿠키가 생성 되었습니다!</h1>");
        out.println("</body></html>");
    }
    • @Override: 부모 클래스의 메서드를 재정의합니다.

    • protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException: HTTP GET 요청을 처리합니다.

    • Cookie userCookie = new Cookie("username", "tetz");: "username"이라는 이름으로 "tetz" 값을 가진 쿠키를 생성합니다.

    • userCookie.setMaxAge(7);: 쿠키의 유효기간을 7초로 설정합니다.

    • response.addCookie(userCookie);: 응답에 쿠키를 추가합니다.

    • PrintWriter out = response.getWriter();: 응답에 데이터를 작성하기 위해 PrintWriter 객체를 생성합니다.

    • out.println("<html><body>");, out.println("<h1>쿠키가 생성 되었습니다!</h1>");, out.println("</body></html>");: HTML 형식으로 응답 본문을 작성합니다.

  1. doPost 메서드

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // POST 요청에 대한 처리 로직이 필요할 경우 여기에 작성
    }
    • POST 요청을 처리하기 위한 메서드로, 현재는 구현 내용이 없습니다.

논리적 구조 흐름

  1. 클라이언트가 /setCookie URL에 GET 요청을 보냄

    • 브라우저에서 /setCookie로 GET 요청을 보내면 CookieServletdoGet 메서드가 호출됩니다.
  2. 쿠키 생성 및 설정

    • doGet 메서드에서 "username"이라는 이름으로 "tetz" 값을 가진 쿠키가 생성됩니다.
    • 이 쿠키의 유효기간을 7초로 설정합니다.
    • 생성된 쿠키는 응답 객체에 추가됩니다.
  3. 응답 작성

    • PrintWriter 객체를 사용하여 HTML 형식의 응답을 작성합니다.
    • "쿠키가 생성 되었습니다!"라는 메시지가 포함된 HTML 응답이 클라이언트로 전송됩니다.

관련 파일 및 작용

  • JSP 파일들 (auth.jsp, board.jsp 등): 이 서블릿과 직접적인 관련은 없지만, 서블릿에서 설정한 쿠키를 JSP 파일에서 읽어와서 사용할 수 있습니다. 예를 들어, 사용자 인증이나 사용자 환경 설정 등을 처리할 때 사용할 수 있습니다.
  • 다른 서블릿 (BoardServlet, LoginServlet 등): 이 서블릿에서 설정한 쿠키를 다른 서블릿에서 읽어와서 사용할 수 있습니다. 예를 들어, 로그인 서블릿에서 사용자 정보를 확인하고, 게시판 서블릿에서 사용자 이름을 표시할 때 사용할 수 있습니다.

이 구조를 통해 CookieServlet은 사용자에게 특정 정보를 담은 쿠키를 전송하고, 이 쿠키를 다른 서블릿이나 JSP에서 활용하여 사용자 맞춤형 서비스를 제공할 수 있습니다.

0개의 댓글