HTTP
: connectless, stateless (연결 비유지, 상태 비유지)
-> 그래서 상태 유지 가능하도록 보완하는 기술과 함께 사용
일정 시간 동안 동일한 사용자로부터 들어오는 일련의 요청들을 하나의 연속된 상태로 보고 유지할 수 있도록 해주는 기술에는 2가지가 있다.
Cookie
: Client Side
이름, 값
: String, Unique 관리 도메인
: 자동부여 경로
유효시간
: 생략 or 음수 = 세션 쿠키, 자연수 = 해당 시간만큼 유지하는 쿠키, 0 = 쿠키 삭제Cookie
는 Defualt 생성자가 존재하지 않음 이름, 값
이 유니크해야 하므로 도메인
별로 쿠키를 유지한다.Cookie
를 DTO
비슷하게 생각하면 좋다.Cookie 생성
cookie = new Cookie(이름, 값); response.addCookie(cookie);
Cookie 조회 (상태 조회)
Cookie[] cookies = response.getCookies(); 배열 반복돌며 원하는 쿠키 찾기! getName(), getValues()
Cookie 삭제
cookie.setMaxAge(0); response.addCookie(cookie);
Session
: Server Side
Session
도 Cookie
베이스라고 할 수있다.Session
은 상태 정보를 유지할 수 있는 보관함이다.Client 최초 접속시
Session
객체 생성 (일정 시간 유지)HttpSession session = request.getSession(true) or getSession(false) : 없을 때 생성 여부 (false 쓸 일 거의 없음)
상태 정보 조회
session.getAttribute(key)
상태 정보 삭제
session.removeAttribute(key)
Session
삭제session.invaliddate()
<%@ include file="/" %> : 정적 리소스 (html) include -> 소스코드 복붙 그 이상 그 이하도 아님
복붙이기 때문에, 변수 중복이 허용되지 않는다.
호출된 파일의 이름의 .java, .class가 생성되지 않는다.
<jsp:include page="/"></jsp:include> : 동적 리소스(jsp) include -> 해당 page 실행시킴
출력 결과가 include 시키는 page response 출력으로 포함된다.
복붙시키는 것이 아니기 때문에, 변수 중복이 허용된다.
호출된 파일의 이름의 .java, .class가 생성된다.