현재

[JSP] Cookie 본문

웹 프로그래밍/JSP

[JSP] Cookie

AAAge 2023. 10. 18. 18:40

webapp/getCookie

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<% 
	//백엔드쪽 코드@ 
	//요청을받으면 쿠기가 100개던 1000개던 모든 쿠키를 다날려보낸다.
	Cookie[] cookies = request.getCookies();
	if(cookies != null){
		for(Cookie e : cookies){ //모든 쿠키를 반환하기 때문에 원하는 쿠키가 있다면 
								// if문을 사용하여 찾아주어야 한다.
			//if(e.getName().equals("a")){
				System.out.println(e.getName() + " : " + e.getValue());
			//}
		}
	}
	/*
	클라이언트가 WAS에 request하고 response 할때 특정 session id 3333을 response

	그러면 TCP/IP레벨에서 알수 없지만 request할때 reponse에서 생성된 session id 3333을다시

	WAS에 request함으로써 동일 인물임을 확인 가능하다.
	*/
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
</body>
</html>

 

webapp/setCookie

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	//위는 서블릿코드, 아래는 포워딩된 코드! (현재는 귀찮아서 이렇게 만듦, 원래는 절대 이렇게 안씀);

	/*cookie(클라이언트 저장 공간) : 클라이언트의 컴퓨터에 저장 
					<쿠키의 특징>
	제약조건 - 1. value로서는 문자만 저장 가능하다. 
	     	2. 사실상 한글 불가능, 크기에 제한이 있다.
	     	3. 항상 변조가 가능하다.
		    
	★어떤 값을 저장할때 session(server) 혹은 cookie(client)로 선택해야할때 
	보안쪽으로 중요한 값들은 무조건 Session을 사용한다.
	굳이?? 서버에 저정해야되?? 이런 느낌이 드는 값들은 cookie에 저장 할 수 있다.
	
	
	*/
	//int a = 40;	// int + String은 문자가됨(a+"")
	String a = "40";
	Cookie c1 = new Cookie("a", a + ""); //cookie에서 key는 string이고 value도 string이다.
	c1.setMaxAge(60);
	response.addCookie(c1); // 이 시점에서 클라이언트에 (웹 브라우저가 하드 디스크에 파일로)저장
	
	String nickName = "한조";
	Cookie c2 = new Cookie("nickname", nickName);
	response.addCookie(c2);
	//cookie는 변조가 가능하다. 그래서 주의해야함! 해결법은 -> ?
%>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	쿠키에 값 저장!!
</body>
</html>