JSP 쿠키

별의개발자커비·2023년 5월 14일
0

JSP

목록 보기
15/31
post-thumbnail

0. 쿠키

  • 클라이언트와 웹서버간의 연결을 지속적으로 유지해주게 하는 것

  • 근데 세션도 그렇지 않아? 세션 vs 쿠키

    • 세션
      : 웹 서버에 저장함
    • 쿠키
      : 로컬에 저장함
  • 장점

    • 쿠키 정보가 c드라이브 특정 디렉토리 밑에 암호화해서 저장되게 됨
    • 서버가 해야하는 것을 일부 쿠키가 해줌으로써 서버의 부하를 줄여줌
    • 모든 클라이언트의 정보를 서버에 저장하면 안좋으니까
  • 단점
    - 그래서 인정보를 쿠키에 저장하면 안됨
    https://soulno.tistory.com/39

  • response가 계속 나오는 이유 (response.addCookie 등)

    • 서버는 request로 넘겨받아야 하는 정보를 받음
    • 클라이언트는 reponse를 열어봐서 정보를 받음
    • 이 때, 클라이언트가 response를 열어 쿠키도 확인하는(?)

1. 쿠키 개념

01. cookie01.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>cookie01</title>
</head>
<body>
	<%
	Cookie cookie_id = new Cookie("userid", "admin"); // (name, value)
	response.addCookie(cookie_id);
	
	Cookie cookie_psw = new Cookie("userpsw", "admin1234"); 
	response.addCookie(cookie_psw);
	%>
</body>
</html>
  • Cookie co = new Cookie("userid", "admin");
    • 이렇게 (name, value) 값으로 받음
  • response.addCookie(co);

02. cookie02.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>cookie02</title>
</head>
<body>
<% 
	Cookie [] cookies =  request.getCookies() ;
	if(cookies == null){
		out.print("쿠키 값이 없습니다");
		return;
	}
	for(Cookie co : cookies){
		out.print("<br>" + co.getName() + " : " + co.getValue() + "<br>");
	}
%>
</body>
</html>
  • request.getCookies() 는
  • Cookie [] cookies 배열로 받음

03. cookie3.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>cookie3</title>
</head>
<body>
	<%
	for(Cookie co : request.getCookies()){
		if(co.getName().equals("userpsw")){  // co.getName().trim()까지 해도 그만 안해도 그만
			co.setMaxAge(0);
			response.addCookie(co);
		}
	};
	%>
</body>
</html>
  • setmaxage=0 즉, 유효기간을 0으로 주면 삭제 가능
  • 객체별로 따로 따로 있어서 세션처럼 invalidate로 전체 삭제는 안됨
  • trim(): 공백제거
profile
비전공자 독학러. 일단 쌔린다. 개발 공부👊

0개의 댓글