html의 한계
서버에는 자원의 한계가 있는데 클라이언트가 접속할때마다 서버에 클라이언트가 접속해있는 상태가 유지되기 때문에 자원을 많이 쓴다.
HTTP의 한계
비연결형이기 때문에 로그인 해도 로그인 정보가 누적되지 않는다.
Cookie & Session
Client의 정보를 지속적으로 유지하기 위한 방법
cookie란?
- 웹 서버가 브라우저에게 지시하여 사용자의 로컬 컴퓨터에 파일 또는 메모리에 저장하는 작은 기록 정보 파일
- 파일에 담긴 정보는 인터넷 사용자가 같은 웹사이트를 방문할 때마다 읽히고 수시로 새로운 정보로 바뀔 수 있음
- 드러나도 되는 정보를 저장(장바구니, 최근 검색어 .. 등)
cookie의 동작원리
cookie의 데이터타입
- String
cookie의 단점?
-클라이언트의 하드에 저장하기 때문에 보안성 낮음 -> 암호화해서 사용해야함!
cookie 위치 확인하기
- 4KB이하로 제한, 300개 데이터 정보 배열
즉, 최대 쿠키 용량은 4KB X 300개 = 1.2MB
Cookie 만들기 실습을 해보자!
- 쿠키 객체 생성
Cookie cookie = new Cookie(쿠키이름, 쿠키값);
<%@page import="java.net.URLEncoder"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>쿠키 굽는중</h1>
<%
// 쿠키 객체 생성
// 쿠키는 아스키코드로 구성이 되어야해서 한글 사용 불가능!
// 한글 사용하려면 인코딩(문자를 코드화 하는 과정) 진행
// URLEncoder.encode(인코딩 진행할 String, 인코딩방식)
Cookie cookie = new Cookie("id", URLEncoder.encode("이서연", "UTF-8"));
Cookie cookie2 = new Cookie("age","20");
// 쿠키의 기한 설정
// setMaxage(초단위정수), 기본값 1년
// 쿠키는 삭제가 불가능, 대신 기한을 0으로 만들어서 만들자마자 지우기
cookie.setMaxAge(60*60);
// 쿠키 전송
// 쿠키는 응답할 때 같이 전송이 되므로 response객체 사용
response.addCookie(cookie);
response.addCookie(cookie2);
%>
</body>
</html>
결과 확인하기
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>내가 구운 쿠키는?</h1>
<%
// request객체 사용해서 쿠키 조회하기
// 쿠키의 리턴타입은 배열이다
// Client가 새로운 요청을 보낼 때 쿠키를 가지고 요청을 진행한다
// 인코딩 된 문자는 꼭 디코딩(코드를 문자로 변환) 해서 출력해야한다
Cookie[] cookies = request.getCookies();
for (int i = 0; i < cookies.length; i++) {
out.print("쿠키이름 : " + cookies[i].getName() + "<br>");
out.print("쿠키값 : " + cookies[i].getValue() + "<br>");
out.print("<hr>");
}
%>
<hr>
<!-- for-each문과 표현식 사용해서 출력해보기 -->
<!-- for-each문
for(변수명-배열을 대신할 : 배열) -->
<h1>표현식/for-each문</h1>
<%
for(Cookie c:cookies){%>
쿠키이름 : <%=c.getName() %> <br>
쿠키값 : <%= c.getValue() %> <br>
<hr>
<%}%>
</body>
</html>
실행 결과
'웹 개발 언어 > JSP&Servlet' 카테고리의 다른 글
Cookie & Session 쿠키와 세션-2 (0) | 2022.04.22 |
---|---|
MVC 패턴 Model2를 이용해서 로그인 페이지 만들기 (0) | 2022.04.21 |
MVC 패턴 Model2를 이용해서 회원가입 페이지 만들기 (0) | 2022.04.21 |
MVC 패턴 Model1을 통해 로그인 기능 만들어보자 (0) | 2022.04.18 |
MVC 패턴 Model1을 통해 회원가입 기능 만들어보자 (0) | 2022.04.18 |
댓글