본문 바로가기

WEB_Programming

JSP Cookie 이용하기

이 예제는 JSP페이지에서 쿠키를 어떻게 사용하는지 설명한다. 이 예제에서 어떻게 쿠키에 값을 저장하고, 다른 jsp페이지에서 어떻게 쿠키값을 획득할지에 대해서 설명하고 있다.

이제 쿠키에 대해서 이해해 보자. 쿠키는 작은 데이터 조각으로 웹서버에서 클라이언트 브라우저에 전송되는 작은 데이터이다.쿠키는 클라이언트의 하드 디스크에 작은 텍스트 파일로 저장된다. 쿠키는 웹 사용자의 인증을 해주는 기능도 한다. 쿠키는 세션을 처리하기 위한 매우 중요한 역할을 담당하고 있다.

쿠키 클래스

JSP에서 javax.servlet.http.Cookie라는 클래스를 이용하여 쿠키를 적용할 수 있다. 이 클래스는 쿠키를 생성하는데 이용되고, 작은 양의 정보를 서블릿에서 웹 브라우저로 전송을 담당하며, 브라우저는 이러한 정보를 저장한다. 그리고 이후에 서버로 다시 전송하게 된다. 쿠키의 값은 클라이언트마다 유일한 값을 가질 수 있으며, 쿠키는 일반적으로 세션을 관리한다. 쿠키는 이름과 단일 값을 가지고 있으며, 추가적으로 코멘트, 패스, 도메인 구분자, 최대 생명주기, 버젼넘버와 같은 속성을 가질 수 있다.

getCookies()메소드는 쿠키 객체의 배열을 반환하는 메소드이다. 쿠키는 다음과 같은 코드를 이용하여 생성할 수 있다.

Cookie(java.lang.String name, java.lang.String value)

쿠키는 다음과 같은 메소드를 가진다.

Method

Description

getComment()

현재 쿠키를 설명하고 있는 코멘트 디스크립션을 반환한다. null이라면 코멘트가 정의된것이 없다는 의미이다.

getMaxAge()

쿠키의 최대 생명주기 값을 반환한다.

getName()

쿠키의 이름을 반환한다.

getPath()

쿠키가 지정하고 있는 모든 URL의 prefix를 반환한다.

getValue()

쿠키 값을 반환한다.

setComment(String)

웹 브라우저가 쿠키 사용자가 지정한 쿠키의 목적에 대한 디스크립션 코멘트를 지정한다.

setMaxAge(int)

쿠키값의 최대 생명주기를 지정한다. 쿠키는 여기에 지정한 초가 지나가면 쿠키값은 자동으로 익스파이어 된다. 음수를 지정하면 기본적은 행동을 하며, 쿠키는 저장되지 않는다. 그리고 사용자 웹 브라우저를 빠져나가는 순간 사라지게 된다. 0값은 쿠키값을 삭제하라는 의미가 된다.

setPath(String)

이 쿠키값은 시작 URL의 값을 지정한다.

setValue(String)

쿠키 값을 지정한다. 값은 특별한 문자열로 지정되며, (공백, {, (, =, comma, ", /, ?)의 값을 사용하는 것을 피하는 것이 좋다. 공백은 모든 브라우저에 동일하게 아무런 일도 하지 않는다.


쿠키를 이용한 예제 보기

이제 JSP페이지에서 쿠키를 설정하고 전송해 보고자 한다.


폼 생성

이 코드는 cookieform.jsp이며, 특정 사용자 이름을 입력 받도록 되어 있다.

<%@ page language="java" %>
<html>
<head>
<title>Cookie Input Form</title>
</head>
<body>
<form method="post" action="setcookie.jsp">
<p><b>Enter Your Name: </b><input type="text" name="username"><br>
<input type="submit" value="Submit">

</form>

</body>


위의 작업을 수행할때 사용자가 이름을 입력한다. 사용자는 setcookie.jsp파일로 입력된 데이터를 첨부하며, 쿠키를 설정하게 된다. 여기에 코드는 setcookie.jsp파일이다.

<%@ page language="java" import="java.util.*"%>
<%
String username=request.getParameter("username");
if(username==null) username="";


Date now = new Date();
String timestamp = now.toString();
Cookie cookie = new Cookie ("username",username);
cookie.setMaxAge(365 * 24 * 60 * 60);
response.addCookie(cookie);


%>

<html>
<head>
<title>Cookie Saved</title>
</head>
<body>
<p><a href="showcookievalue.jsp">Next Page to view the cookie value</a><p>

</body>


상단 코드는 쿠키를 설정하는 것이고, 쿠키 페이지를 통하여, 값을 표현할 것이다. 여기 코드는 쿠키를 표현하는 페이지로 showcookievalue.jsp 파일이다.

<%@ page language="java" %>
<%
String cookieName = "username";
Cookie cookies [] = request.getCookies ();
Cookie myCookie = null;
if (cookies != null)
{
for (int i = 0; i < cookies.length; i++)
{
if (cookies [i].getName().equals (cookieName))
{
myCookie = cookies[i];
break;
}
}
}

%>
<html>
<head>
<title>Show Saved Cookie</title>
</head>
<body>


<%
if (myCookie == null) {
%>
No Cookie found with the name <%=cookieName%>
<%
} else {
%>
<p>Welcome: <%=myCookie.getValue()%>.
<%
}
%>
</body>


페이지를 실행해보면, 쿠키의 사용을 확인할 수 있을 것이다.

'WEB_Programming' 카테고리의 다른 글

[WAS] 인코딩 필터 사용시 주의할점.  (0) 2008.07.25
JSP Include 2가지 종류  (0) 2008.07.21
자바스크립트 화면 인쇄  (0) 2008.07.03
JavaScript 캘린터 프로그램  (0) 2008.07.02
CSS cursor 모양 바꾸기  (0) 2008.06.30