일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- JDBC
- jsp
- 자바문제
- 맥
- crud
- FastAPI
- API
- html
- servlet
- 대덕인재개발원
- nodejs
- 컬렉션프레임워크
- python
- 배열
- Oracle
- 자바
- 생활코딩
- pyqt
- spring
- Homebrew
- Java
- 이클립스
- Mac
- Android
- ibatis
- ddit
- Error
- 반복문
- 단축키
- 객체지향
Archives
- Today
- Total
romworld
JSP 28 - 쿠키(Cookie) 본문
세션과 쿠키의 특징
세션 | 쿠키 |
HTTPSession 인터페이스 | Cookie 클래스 |
톰켓에 저장(서버) - 보안이 좋다. |
크롬에 저장(클라이언트) - 보안에 취약 |
invalidate() : (모든 세션 제거) | setMaxAge() : 0으로 초기화 |
setAttribute() : 생성 | Cookie cookie = new Cookie("name","value") |
로그인 후 로그인 정보 유지 (인증) | 아이디/비밀번호 저장 , 자동로그인 |
- 클라이언트와 웹 서버 간의 상태를 지속적으로 유지
- 쿠키는 세션과 달리 상태 정보르 웹 서버가 아닌 클라이언트에 저장
- 웹 서버의 부하를 줄일 수 있다
- 다만 웹 브라우저가 접속했던 웹 사이트에 관한 정보와 개인 정보가 기록되기 때문에 보안에 문자게 있다
쿠키동작 과정
- 쿠키 생성 단계 : 주로 웹 서버 측에서 생성. 생성된 쿠키는 응답 데이터에 함께 저장되어 웹 브라우저에 전송됨
- 쿠키 저장 단계 : 웹 브라우저는 응답 데이터에 포함된 쿠키를 쿠키 저장소에 보관. 쿠키는 종류에 따라 메모리나 파일로 저장됨
- 쿠키 전송 단계 : 웹 서버는 웹 브라우저가 전송한 쿠키를 사용하여 필요한 작업을 수행할 수 있음.
쿠키 생성
생성한 후에는 반드시 addCookie() 메소드로 쿠키 설정
Cookie Cookie(String name, String value)
[ Cookie() 메소드 사용 예]
Cookie cookie = new Cookie("memberId", "admin");
response.addCookie(cookie);
<cookie01.jsp>
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<title>Cookie</title>
</head>
<body>
<!-- 폼 페이지
요청 URI : cookie01_process.jsp?id=gdi&passwd=java
요청 파라미터 : id=gdi&passwd=java
방식 : post
-->
<form action="cookie01_process.jsp" method="post">
<!-- 폼 데이터 -->
<p>아이디 : <input type="text" name="id" /></p>
<p>비밀번호 : <input type="text" name="passwd" /> </p>
<p><input type="submit" value="전송" /></p>
</form>
</body>
</html>
<cookie01_process.jsp>
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<title>Cookie</title>
</head>
<body>
<% //스크립틀릿
//요청URI : cookie01_process.jsp?id=gdi&passwd=java
String user_id = request.getParameter("id"); //gdi
String user_pw = request.getParameter("passwd"); //java
//아이디가 gdi, 비밀번호 java라면 관리자 로그인
if(user_id.equals("gdi")&&user_pw.equals("java")){
//Cookie객체를 생성
//name은 userID, value gdi
Cookie cookie_id = new Cookie("userID",user_id);
// name은 userPW, value는 java
Cookie cookie_pw = new Cookie("userID",user_pw);
//서버에서 쿠키가 생성되어 응답 시
//response 내장 객체를 통해 쿠키를 리턴받음
response.addCookie(cookie_id);
response.addCookie(cookie_pw);
out.print("<p>쿠키 설정 성공!</p>");
out.print("<p>" + user_id +"님 환영합니다!</p>");
}else{
out.print("<p>쿠키 설정 실패</p>");
}
%>
</body>
</html>
쿠키 객체 얻기
Cookie[] request.getCookies()
[getCookies() 메소드 사용 예]
Cookie[] cookies = request.getCookies();
쿠키 객체 정보 얻기
getName() , getValue()
[getName(), getValue() 메소드 사용 예]
cookie[] cookies = request.getCookies();
for(int i = 0; i < cookies.length; i++){
out.println(cookies[i].getName() + " : " + cookies[i].getValue() + "<br />");
}
1) 현재 설정된 쿠키의 개수, 이름, 값
<cookie02.jsp>
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<title>Insert title here</title>
</head>
<body>
<%
//name은 userID, value gdi
//Cookie cookie_id = new Cookie("userID",user_id);
// name은 userPW, value는 java
//Cookie cookie_pw = new Cookie("userID",user_pw);
// request 객체에 들어있는 모든 쿠키 정보를 가져와 보자
Cookie[] cookies = request.getCookies();
// 현재 설정된 쿠키의 개수?
out.print("현재 설정된 쿠키의 개수 : " + cookies.length + "<br />");
out.print("<hr />");
for(int i = 0; i < cookies.length; i++){
out.print("쿠키[" + i + "] :" + cookies[i] + "<br />");
//쿠키 속성 이름
out.print("설정된 쿠키의 속성 이름[" + i + "] :"
+ cookies[i].getName() + "<br />");
// 쿠키 속성 값
out.print("설정된 쿠키의 속성 값[" + i + "] :"
+ cookies[i].getValue() + "<br />");
out.print("--------------------<br />");
}
out.print("세션id : " + session.getId() +"<br />");
%>
</body>
</html>
쿠키 삭제
void setMaxAget(int age)
[setMaxAge() 메소드 사용 예]
Cookie cookie = new Cookie("memberId", "admin");
cookie.setMaxAge(0);
response.addCookie(cookie);
<cookie03.jsp>
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<title>Cookie</title>
</head>
<body>
<%
// 요청시마다 쿠키를 함께 보냄. 쿠키는 request 객체에 담김
Cookie[] cookies = request.getCookies();
//[0]cookies : userId
//[1]cookies : userPW
//[2]cookies : JSESSIONID
for(int i = 0; i<cookies.length; i++){
// 모든 쿠키를 삭제
cookies[i].setMaxAge(0);
response.addCookie(cookies[i]);
}
response.sendRedirect("cookie02.jsp");
%>
</body>
</html>
'WEB > JSP' 카테고리의 다른 글
JSP 29 - 쇼핑몰 만들기 사이트(11) 마지막 - [장바구니 배송,주문,취소 - ( 쿠키 활용)] (0) | 2023.01.18 |
---|---|
JSP 27 - 쇼핑몰 사이트 만들기(10) [장바구니 - (session 활용)] (0) | 2023.01.17 |
JSP 26 - 세션(session) (0) | 2023.01.17 |
JSP 25 - 쇼핑몰 사이트 만들기(9) ( LogFilter 적용) (0) | 2023.01.17 |
JSP 24 - 필터 (filter) (0) | 2023.01.16 |
Comments