본문 바로가기

강의 정리/JSP & Servlet (Seoul Wiz)

13. 쿠키

1. 쿠키

- HTTP 프로토콜은 request & response 가 끝나면 연결을 종료함

- 연결이 끊겼을 때 어떤 정보를 지속적으로 유지하기 위한 수단으로 쿠키를 사용

- 쿠키는 서버에서 생성하고 클라이언트에 저장함

- 서버에 요청할 때 마다 쿠키 속성값을 참조하거나 변경 가능

- 쿠키는 용량이 4kb로 제한적이며, 300개까지 데이터 정보를 가질 수 있음

 

 

 

 

 

 

2. 쿠키 문법

 

쿠키의 동작 과정

 

 

 

 

 

 

1) 쿠키 메소드 예제

 

① 쿠키 생성 (cookieset.jsp)

	<%
		Cookie[] cookies = request.getCookies();
		if(cookies != null) {
			for(int i=0; i<cookies.length; i++){
				out.println(cookies[i].getName() + "<br />");
				out.println(cookies[i].getValue() + "<br />");
			}
		}
	%>

 

 

 

② 쿠키 값 받아오기 (cookieget.jsp)

	<%
		Cookie[] cookies = request.getCookies();
	
		for(int i=0; i<cookies.length; i++) {
			String str = cookies[i].getName();
			if(str.equals("cookieN")) {
				out.println("cookies[" + i + "] name : " + cookies[i].getName() + "<br />");
				out.println("cookies[" + i + "] value : " + cookies[i].getValue() + "<br />");
				out.println("=====================<br />");
			}
		}
	%>

<a href="cookiedel.jsp">cookie delete</a>

cookieget.jsp의 출력 화면

 

 

 

③ 쿠키 값 삭제 ( 유효기간을 0으로 설정)

	<%
		Cookie[] cookies = request.getCookies();
		for(int i=0; i<cookies.length; i++) {
			String str = cookies[i].getName();
			if(str.equals("cookieN")) {
				out.println("name : " + cookies[i].getName() + "<br />");
				cookies[i].setMaxAge(0);
				response.addCookie(cookies[i]);
			}
		}
	%>
	
	<a href="cookietest.jsp">쿠키확인</a>

 

 

 

 

 

 

 

 

2) 쿠키로 로그인 기능 구현

 

① login.html (form 태그로 loginOK.jsp 페이지에 넘겨줌)

	<form action="loginOk.jsp" method="post">
		아이디 : <input type="text" name="id" size="10"><br />
		비밀번호 : <input type="password" name="pw" size="10"><br />
		<input type="submit" value="로그인">
	</form>

로그인 페이지

 

 

 

② loginOK.jsp 

 - 로그인 성공시 : 쿠키를 생성하고 welcome.jsp 페이지로 넘김

 - 로그인 실패시 : login.html 페이지로 돌아감

	<%!
		String id, pw;
	%>
	<%
		id = request.getParameter("id");
		pw = request.getParameter("pw");
		
		if(id.equals("abcde") && pw.equals("12345")) {
			Cookie cookie = new Cookie("id", id);
			cookie.setMaxAge(60);
			response.addCookie(cookie);
			response.sendRedirect("welcome.jsp");
		} else {
			response.sendRedirect("login.html");
		}
	%>

 

 

 

 

③ welcome.jsp (로그인 성공시 리디렉션 되는 화면)

	<%
		Cookie[] cookies = request.getCookies();
	
		for(int i=0; i<cookies.length; i++) {
			String id = cookies[i].getValue();
			if(id.equals("abcde")) out.println(id + "님 안녕하세요." + "<br />");
		}
	%>
	
	<a href="logout.jsp">로그아웃</a>

로그인 성공 화면

 

 

 

 

④ logout.jsp (로그아웃 처리)

	<%
		Cookie[] cookies = request.getCookies();
		
		if(cookies != null) {
			for(int i=0; i<cookies.length; i++) {
				if(cookies[i].getValue().equals("abcde")){
					cookies[i].setMaxAge(0);
					response.addCookie(cookies[i]);
				}
			}
		}
		
		//response.sendRedirect("login.html");
		response.sendRedirect("cookietest.jsp");
	%>

'강의 정리 > JSP & Servlet (Seoul Wiz)' 카테고리의 다른 글

15. 예외 페이지  (0) 2019.08.14
14. 세션  (0) 2019.08.08
12. 액션태그  (0) 2019.08.06
11. JSP (3)  (0) 2019.08.05
10. JSP (2)  (0) 2019.08.05