티스토리 뷰
쿠키(Cookie)
쿠키(Cookie)는 웹 브라우저가 보관하는 데이터입니다. 웹 브라우저는 웹 서버에 요청을 보낼 때 쿠키를 함께 전송하며, 웹 서버는 웹 브라우저가 전송한 쿠키를 사용해서 필요한 데이터를 읽을 수 있습니다. JSP에서 생성하는 쿠키는 웹 서버에서 생성 할 수 있습니다.
■ 쿠키 동작 방식
● 쿠키 생성 단계 : JSP 프로그래밍에서 쿠키는 웹 서버측에서 생성되어, 생성한 쿠키를 응답 데이터의 헤더에 포함시켜 웹 브라우저에 전송합니다.
● 쿠키 저장 단계 : 브라우저는 응답 데이터에 포함된 쿠키를 저장합니다.
● 쿠키 전송 단계 : 브라우저는 저장한 쿠키를 요청이 있을 때마다 웹 서버에 전송합니다. 웹 서버는 전송받은 쿠키를 이용해서 필요한 작업을 수행합니다.
■ 쿠키의 구성
● 이름 : 각각의 쿠키를 구분하는데 사용
● 값 : 쿠키의 이름과 관련된 값
● 유효시간 : 쿠키의 유지시간
● 도메인 : 쿠키를 전송할 도메인
● 경로 : 쿠리를 전송할 경로
■ Cookie 클래스 이용하여 쿠키 생성
Cookie cookie = new Cookie("CookieName",
response.addCookie(cookie);
%>
■ Cookies 클래스 이용하여 쿠키 읽기
Cookie[] cookies = request.getCookie();
request.getCookie() 호출하면 Cookie 배열을 리턴합니다. 읽어올 쿠키가 존재하지 않는다면 null을 리턴하므로 소스로 구현 할 때는 null 유무를 판단하는 소스가 들어가서 NullPointerException 발생을 방지 해야 합니다.
■ 쿠키 생성과 읽어오기 예제
쿠키를 생성하는 Create_Cookie.jsp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 |
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" %>
<%
Cookie cookie1 = new Cookie("name","이기택");
response.addCookie(cookie1);
Cookie cookie2 = new Cookie("name2","홍길동");
response.addCookie(cookie2);
%>
<html>
<head>
<title>Insert title here</title>
</head>
<body>
</body>
</html> |
쿠키를 읽어와서 보여주는 Read_Cookie.jsp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 |
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.net.URLDecoder" %>
<html>
<head>
<title>Insert title here</title>
</head>
<body>
<%
Cookie[] cookies = request.getCookies();
if(cookies != null && cookies.length >0)
{
for(int i=0;i<cookies.length;i++)
{
%>
쿠키의 이름은 =<%=cookies[i].getName() %> <br />
쿠키의 값은 = <%=URLDecoder.decode(cookies[i].getValue(),"utf-8")%> <br>
<%
}
}else {
%>
쿠키가 존재하지 않습니다.
<%
}
%>
</body>
</html> |
■ 쿠키 도메인
기본적으로 쿠키는 그 쿠키를 생성한 서버에만 전송이 된다. 같은 도메인을 사용하는 모든 서버에 쿠키를 보내기 위해서는 Cookie 클래스의 setDomain()을 통해 쿠키를 보낼 도메인을 설정하면 된다.
완전한 도메인: 특정 도메인에 대해서만 쿠키를 전송합니다.
■ 쿠키 경로
경로는 쿠키를 공유할 기준 경로를 지정합니다. setPath() 메서드를 통해 경로를 지정하게 되면 웹 브라우저는 지정한 경로 또는 그 경로의 하위 경로에 대해서만 쿠키를 전송하게 됩니다.
■ 쿠키의 유효시간
쿠키의 유효시간을 지정하지 않으면 웹 브라우저를 종료할 때 쿠키를 함께 삭제시킵니다. 쿠키의 유효시간을 정해 놓으면 그 유효시간 동안 쿠키가 존재하며, 웹 브라우저를 종료해도 유효시간이 지나지 않으면 쿠키를 삭제시 않습니다.
유효시간을 지정하려면 setMaxAge() 메서드를 사용하여 초 단위로 유효시간을 지정합니다. 추가적으로 쿠키를 임의로 삭제 시키고 싶을 때 setMaxAge()를 0으로 지정하면 됩니다.
'Programming > JSP' 카테고리의 다른 글
08 쿠키를 사용한 로그인 상태 유지하기 (1) | 2017.09.24 |
---|---|
06 <jsp:forward> 액션 태그 사용하기 (0) | 2017.09.13 |
05 <jsp:include> 액션 태그와 include 디렉티브 (0) | 2017.09.11 |
04 데이터베이스 프로그래밍 - UPDATE,INSERT,DELETE문 (0) | 2017.09.10 |
03 데이터베이스 프로그래밍 - 테이블 생성 및 조회하기 (2) | 2017.09.06 |