본문 바로가기

Java&JSP&Spring/JSP&Servlet

[JAVA/JSP/Servlet]JSP쿠키

[JAVA/JSP/Servlet]JSP쿠키

안녕하세요 미나라이입니다.

이번에는 JSP에서 쿠키를 사용하는 방법에 대해서 알아보려고 합니다.

프로젝트 환경

OS : Windows 10

IDE : Eclipse 2020-06 (4.16.0)

Java : 8

Jdk Version : 1.8.0_161

WAS : Tomcat 8.5.73

 

웹 브라우저는 보통 클라이언트에서 요청을 하면 서버에서 응답을 하는 방식을 사용하고 있습니다.

이것을 HTTP프로토콜 통신이라고 하는데 요청 주체가 클라이언트 이기때문에 단방향 통신이라고도 합니다.

통신이 끝나면 정보가 모두 사라지기 때문에 그것들을 유지 할 수 있는 수단으로 쿠키 또는 세션을 사용합니다.

 

쿠키나 세션은 주로 로그인 유저 정보를 담거나 해당 페이지에서 자주 사용하는 정보를 저장하는 용도로 사용됩니다.

쿠키는 클라이언트에 데이터를 저장하기 때문에 보안상의 이유로 세션 사용을 권장하는 편입니다.

쿠키와 세션의 차이점은 추후 포스팅을 해 보려고 합니다.

 

쿠키의 특징

쿠키는 최대로 담을 수 있는 용량이 4KB이고, 300개의 데이터 정보를 가질 수 있습니다. 

그리고 쿠키는 String형만을 지원합니다.

 

쿠키의 생성 및 저장

쿠키는 서버에서 생성되고 클라이언트에 전송되어 저장이 됩니다.

즉 저장 매체는 클라이언트(유저의 PC)라고 보면 됩니다.

 

쿠키의 기본 사용법

쿠키의 기본적인 사용법 입니다.

AddCookie.jsp

쿠키를 생성해서 전달하는 부분입니다.

JSP소스코드로 생성을 하고있기 때문에 이부분을 서버 쪽이라고 보시면 됩니다.

<%
    // 쿠키에 들어가는 값
    String user = "test";
    // 쿠키 생성
    Cookie cook = new Cookie("User", user);
    // 쿠키를 response객체에 전달(받는곳은 request쪽)
    response.addCookie(cook);
%>
<a href="GetCookie.jsp">GetCookie</a>

GetCookie.jsp

전달된 쿠키를 받아서 표시하는 부분입니다.

<%! String name,value; %>
<%
    // 쿠키정보를 request객체에서 취득
    Cookie[] cookies = request.getCookies();

    // 쿠키 값 취득
    for(int i = 0; i< cookies.length; i++) {
        // 값 초기화
        name = null;
        value = null;

        if(cookies[i].getName().equals("User")) {
            // Cookie의 Name취득
            name = cookies[i].getName();
            // Cookie의 이름에 맞는 Value취득
            value = cookies[i].getValue();
        }
    }
%>
<h1>Cookie Info</h1>
<h1>CookieName : <%=name%></h1>
<h1>CookieValue : <%=value%></h1>

<a href="AddCookie.jsp">AddCookie</a>
<a href="DelCookie.jsp">DelCookie</a>

쿠키 생성 후 출력결과

DelCookie.jsp

쿠키를 삭제하는 페이지입니다.

<%! String name; %>
<%
    // 쿠키정보를 request객체에서 취득
    Cookie[] cookies = request.getCookies();

    // 쿠키 값 취득
    for(int i = 0; i< cookies.length; i++) {

        // Cookie의 Name취득
        name = cookies[i].getName();

        if(name.equals("User")) {
            // Cookie이름이 일치 할 경우 삭제
            cookies[i].setMaxAge(0);
            // 해당 쿠키값을 다시 response객체로 전달
            response.addCookie(cookies[i]);
        }
    }
%>
<a href="GetCookie.jsp">GetCookie</a>

쿠키 삭제 후 출력결과

여기까지 쿠키의 기본 사용법에 대해서 알아보았습니다.

 

쿠키 문법

쿠키에서 자주 사용되는 문법들입니다.

Cookie cookies = new Cookie("test", "test");

//쿠키를 종료하고 싶을 경우 setMaxAge를 0으로 설정하면 됩니다.
cook.setMaxAge(30);   // 쿠키 유효기간 설정(30초)
cook.setPath("URI");  // 쿠키사용의 유효 디렉토리 설정(쿠키를 사용 할 수 있는 범위 설정)
cook.setValue("val"); // 쿠키의 값 설정
cook.setVersion(1);   // 쿠키 버전을 설정

cook.getMaxAge();     // 쿠키 유효기간 정보 취득
cook.getName();       // 쿠키 이름 취득
cook.getPath();       // 쿠키사용의 유효 디렉토리 정보 취득
cook.getValue();      // 쿠키 값 취득
cook.getVersion();    // 쿠키 버전 취득

 

이상으로 간단하게 쿠키의 활용법에 대해서 알아보았습니다.

 

728x90
반응형