Computer >> 컴퓨터 >  >> 프로그래밍 >> 프로그래밍

JSP에서 쿠키(Cookie) 설정하는 방법: 3단계 완벽 가이드

JSP에서 쿠키를 설정하는 과정은 크게 세 단계로 이루어집니다. 각 단계를 예제 코드와 함께 자세히 살펴보겠습니다.

1단계: Cookie 객체 생성

Cookie 생성자에 쿠키 이름과 값을 문자열 형태로 전달하여 객체를 생성합니다.

Cookie cookie = new Cookie("key","value");

이때 쿠키의 이름과 값에는 공백이나 다음과 같은 특수 문자를 사용할 수 없으므로 주의해야 합니다.

[ ] ( ) = , " / ? @ : ;

2단계: 쿠키 유효 기간 설정

setMaxAge 메서드를 사용하면 쿠키가 유지될 시간을 초 단위로 지정할 수 있습니다. 아래 코드는 쿠키를 24시간 동안 유효하도록 설정하는 예입니다.

cookie.setMaxAge(60*60*24);

3단계: HTTP 응답 헤더에 쿠키 추가

response.addCookie 메서드를 사용해 생성한 쿠키를 HTTP 응답 헤더에 포함시킵니다. 이렇게 해야 브라우저가 쿠키를 저장하고 이후 요청마다 서버로 전달하게 됩니다.

response.addCookie(cookie);

전체 예제

아래는 사용자의 이름(first_name)과 성(last_name)을 입력받아 각각 쿠키로 저장하는 JSP 예제입니다.

<%
   // 이름과 성에 대한 쿠키 생성
   Cookie firstName = new Cookie("first_name", request.getParameter("first_name"));
   Cookie lastName = new Cookie("last_name", request.getParameter("last_name"));

   // 두 쿠키 모두 만료 시간을 24시간으로 설정
   firstName.setMaxAge(60*60*24);
   lastName.setMaxAge(60*60*24);

   // 두 쿠키를 응답 헤더에 추가
   response.addCookie( firstName );
   response.addCookie( lastName );
%>
<html>
   <head>
      <title>쿠키 설정하기</title>
   </head>
   <body>
      <center>
         <h1>쿠키 설정하기</h1>
      </center>
      <ul>
         <li><p><b>이름:</b>
            <%= request.getParameter("first_name")%>
         </p></li>
         <li><p><b>성:</b>
            <%= request.getParameter("last_name")%>
         </p></li>
      </ul>
   </body>
</html>

위 코드를 main.jsp 파일로 저장하고, 다음 HTML 페이지에서 이 파일을 호출하도록 구성해 보겠습니다.

<html>
   <body>
      <form action = "main.jsp" method = "GET">
         이름: <input type = "text" name = "first_name">
         <br />
         성: <input type = "text" name = "last_name" />
         <input type = "submit" value = "제출" />
       </form>
    </body>
</html>

위 HTML 내용을 hello.jsp 파일로 저장한 뒤, hello.jspmain.jsp 두 파일을 모두 <Tomcat 설치 디렉터리>/webapps/ROOT 폴더에 넣습니다. 그다음 브라우저에서 https://localhost:8080/hello.jsp에 접속하면 아래와 같은 입력 화면을 볼 수 있습니다.

실행 결과

JSP에서 쿠키(Cookie) 설정하는 방법: 3단계 완벽 가이드

이름과 성을 입력한 후 제출 버튼을 클릭해 보세요. 화면에 입력한 값이 표시되는 동시에 firstNamelastName이라는 두 개의 쿠키가 브라우저에 저장됩니다. 이후 다시 제출 버튼을 클릭하면 저장된 쿠키들이 함께 서버로 전송되며, 필요하다면 request.getCookies() 메서드를 통해 서버 측에서 이 값을 다시 읽어 활용할 수 있습니다.