1. Cookie
1) 쿠키의 개요
- HTTP 프로토콜은 웹 브라우저(클라이언트) 요청에 대한 응답을 하고 나면 해당 클라이언트와의 연결을 지속하지 않는다.
- 상태가 없는 프로토콜을 위해 상태를 지속시키기 위한 방법이다.
- 정보를 웹 브라우저에 저장한다.
2) 쿠키의 사용
- 이름, 값, 유효기간, 도메인, 경로 등으로 이루어진다.
- 쿠키의 이름은 알파벳과 숫자로 이루어진다.
쿠키 값은 공백, 괄호, 등호, 콤마, 콜론, 세미콜론을 포함하려면 인코딩이 필요하다.
- 쿠키 생성
Cookie cookie = new Cookie(String name, String value);
- 쿠키를 response객체에 추가
response.addCookie(cookie);
- request객체에 실려온 쿠키를 읽어 올 때
Cookie[] cookies = request.getCookies();
- 쿠키를 작성해서 사용하는 순서
1) 먼저 쿠키를 생성한다.
2) 쿠키에 필요한 설정을 한다. 쿠키의 유효시간, 쿠키에 대한 설명 등을 적용하고, 도메인, 패스, 보안 등을 한다.
3) 웹 브라우저에 생성된 쿠키를 전송한다.
- 웹 브라우저에 저장된 쿠키를 사용하는 절차
1) 웹 브라우저의 요청에 쿠키를 얻어온다.
2) 쿠키는 이름, 값의 쌍으로 된 배열 형태로 리턴된다. 리턴된 쿠키의 배열에서 쿠키 이름을 가져온다
3) 쿠키 이름을 통해서 쿠키에 설정된 값을 추출한다.
예제 1. Cookie 사용
Dynamic Web Project : 12-Cookie_Session
JSP File : WebContent/makeCookie.jsp
WebContent/useCookie.jsp
<실행 결과>
30초가 지난 후
쿠키 시간 만료 된 후 페이지 모습
1. 12-Cookie_Session/WebContent/makeCookie.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page info ="copyright by MIS" %>
<% request.setCharacterEncoding("utf-8"); %>
<%
String cookieName="id";
Cookie cookie = new Cookie(cookieName, "hongkd");
cookie.setMaxAge(30);
response.addCookie(cookie);
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h2>쿠키를 생성하는 페이지</h2>
<p>"<%=cookieName %>" 쿠키가 생성되었습니다.</p>
<form action="useCookie.jsp" method="post">
<input type="submit" value="생성된 쿠키 확인">
</form>
</body>
</html>
2. 12-Cookie_Session/WebContent/useCookie.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page info ="copyright by MIS" %>
<% request.setCharacterEncoding("utf-8"); %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h2>웹 브라우저에 저장된 쿠키를 가져오는 페이지</h2>
<%
Cookie[] cookies = request.getCookies();
if(cookies != null){
for(int i = 0 ; i < cookies.length ; i++){
if(cookies[i].getName().equals("id")){
%>
쿠키의 이름은 "<%=cookies[i].getName() %>"이고
쿠키의 값은 "<%=cookies[i].getValue() %>"입니다.
<%
}
}
}
%>
</body>
</html>
'IT > Programming' 카테고리의 다른 글
<Code Craft> 1부 코드와 마주보기 : 01 방어하기 (1) (0) | 2023.04.19 |
---|---|
JSP 자바빈즈(JavaBeans) (0) | 2023.04.19 |
JSP 게시판의 로그인 전/후 분리하기 (0) | 2023.04.19 |
JSP 회원가입 및 로그인 - 5. 회원등록시 ID 중복 체크하기 (0) | 2023.04.19 |
JSP 회원가입 및 로그인 - 4. 로그인 처리하기 (0) | 2023.04.19 |