티스토리 뷰

Servlet JSP

Cookie 옵션 Path

Programmers 2021. 4. 24. 09:00
반응형

Cookie의 옵션 중 Path에 대해서 알아보자!
Cookie의 Path 옵션이란?
여러 서블릿마다 필요한 Cookie가 다르다. 그래서 효율적으로 Cookie를 전달하기 위해서 사용하는 옵션이다.
URL과 관련된 서블릿에게만 Cookie가 전달되도록 할 수 있다.

Cookie 전달과정

코드를 통해서 알아보자!

			/*Calc2.java 코드 일부*/
			/*쿠키 생성 및 저장 */
			Cookie valueCookie = new Cookie("value", String.valueOf(v)); 
				//문자열만 사용 할 수 있기 때문에 String.valueOf()로 변환시켜준다.
			Cookie btnCookie = new Cookie("btn", btn);
			
			valueCookie.setPath("/"); //valueCookie는 모든 경로가 호출 될때 Cookie 값을 전달.
			btnCookie.setPath("/"); //btnCookie는 모든 경로가 호출 될때 Cookie 값을 전달.
			
			response.addCookie(valueCookie);
			response.addCookie(btnCookie);
			


두줄의 코드를 추가해주었다.
valueCookie.setPath("/");
=> valueCookie는 모든 경로가 호출될 때 Cookie 값을 전달.
btnCookie.setPath("/");
=> btnCookie는 모든 경로가 호출 될때 Cookie 값을 전달.
이렇게 코드가 있다면 모든 서블릿에서 이 Cookie를 전달받게 될 것이다.

그렇다면 지금 사용하고 있는 서블릿인 calc2만 호출하려면 어떻게 코드를 작성해야 할까? 

			/*Calc2.java 코드 일부*/
			/*쿠키 생성 및 저장 */
			Cookie valueCookie = new Cookie("value", String.valueOf(v));
			 //문자열만 사용 할 수 있기 때문에 String.valueOf()로 변환시켜준다.
			Cookie btnCookie = new Cookie("btn", btn);
			
			valueCookie.setPath("/calc2"); ///valueCooke는 calc2하위 URL이 호출 될때 Cookie 값을 전달.
			btnCookie.setPath("/calc2"); //btnCookie는 calc2하위 URL이 호출 될때 Cookie 값을 전달.
			
			response.addCookie(valueCookie);
			response.addCookie(btnCookie);

valueCookie.setPath("/calc2");
=> /calc2로 설정하면 하위의 URL이 호출될 때에만 Cookie값이 전달된다.
btnCookie.setPath("/calc2");
=> /calc2로 설정하면 하위의 URL이 호출될 때에만 Cookie값이 전달된다.

Set-Cookie 전달 값 확인

Response Headers에서 Set-Cookie를 보면 Path=/calc2가 전달되는 것을 확인할 수 있다.
또한 브라우저 내의 다운로드한 쿠키를 확인해도 알 수 있다.

cookie값 전달 확인


이렇게 옵션을 통해서 Cookie를 설정한다면,
다른 서블릿에 불필요한 Cookie를 전달하지 않아 효과적으로 사용할 수 있게 된다.

반응형
댓글
공지사항