page 영역 : 동일한 페이지에서만 공유하고 페이지를 벗어나면 없어짐
request 영역 : 하나의 요청에 의해 호출된 페이지와 포워드(요청전달) 된 페이지까지 공유.
새로운 페이지를 요청(페이지 이동)하면 소멸
session 영역 : 클라이언트가 처음 접속한 후 웹 브라우저를 닫을 때까지 공유.
포워드는 페이지 이동 시에도 영역은 소멸되지 않음
(ex.종료하고나면 다시 로그인해야하는 은행앱, 시간제한 걸어두는 보안이 중요한 사이트 등)
application 영역 : 한 번 저장되면 웹 애플리케이션이 종료될 때까지 유지한다
서버만 꺼지지않으면 언제든 공유되는 영역
데이터 전송 객체란 (DTO) 주로 데이터를 저장하거나 전송하는데 쓰이는 객체로
다른로직없이 순수하게 데이터만을 담고있다.
데이터만 가지고있는 객체라 값 객체라고도 한다 (ValueObject)
DTO는 자바빈즈 규약에 따라 작성한다
자바빈즈 규약
1. 자바빈즈는 default 패키지 이외의 패키지에 속해야함
2. 멤버 변수(속성)의 접근 지정자는 private으로 선언함
3. 기본 생성자가 있어야 함
4. 멤버 변수에 접근할 수 있는 게터/세터 메서드가 있어야 함
5. 게터/세터 메서드의 접근지정자는 public으로 선언함
page 영역은 클라이언트의 요청을 처리하는데 관여하는 JSP 페이지마다 하나씩 생성된다
이때 각 JSP 페이지는 page 영역을 사용하기 위한 pageContext 객체를 할당한다
pageContext 객체: 저장된 정보는 해당 페이지에서만 사용할 수 있고 페이지를 벗어나면 소멸되는 객체
include 지시어로 '포함'시킨 통합된 JSP 파일도 결국 '하나의 페이지'이므로 page 영역이 공유가된다 page가 다르면 포함X
request 영역은 하나의 요청에 대한 응답이 완료될 때 소멸하게 된다
때문에 page 영역보다는 접근 범위가 조금 더 넓다
단 페이지 이동 시에는 소멸된다.
하지만 forward로 다른 페이지로 이동하는 경우에는 살아있다
자세한건 위에 forward와 sendRedirect 의 차이점 참고
클라이언트가 서버에 접속해 있는 상태 혹은 단위 주로 회원인증 후 로그인 상태를 유지하는 처리에 사용한다
클라이언트가 웹 브라우저를 최초로 열고난 후 닫을 때까지 요청되는 모든 페이지는 session 객체를 공유한다
웹 브라우저를 닫으면 session 객체가 삭제되고, 웹 브라우저를 다시 실행하면 그때 새로운 session 객체가 생성됨
웹 애플리케이션은 단 하나의 application 객체만 생성하고, 클라이언트가 요청하는 모든 페이지가 application 객체를 공유한다
application 객체는 웹 서버를 시작할 때 만들어지며, 웹 서버를 내릴 때 삭제된다
따라서 application 영역에 한 번 저장된 정보는 페이지를 이동하거나, 웹 브라우저를 닫았다가 새롭게 접속해도 삭제되지 않는다
====================================================================
쿠키 속성과 API
name : 쿠키를 구별하는 이름
value : 쿠키에 저장할 실제 데이터
domain : 쿠키를 적용할 도메인
path : 쿠키를 적용할 경로
max age : 쿠키를 유지할 시간
설정 메소드들
void setValue(String value)
쿠키의 값을 설정, 문자열입력 쉼표나세미콜론같은 문자는안됨
void setDomain(String domain)
쿠키에 적용할 도메인설정
void setPath(String path)
쿠키가 적용될 경로를 지정, 지정경로와 그 하위경로까지 적용됨
void setMaxAge(int exprie_seconds)
쿠키가 유지될 기간을 초 단위로 설정함 기간을 설정하지않으면
웹브라우저를 닫을때 쿠키도 같이 날라감
쿠키는 setName이 없다 쿠키의 이름은 생성자를 통해 설정하고 생성후에는 더이상 이름을 변경할수없어서 그렇다
쿠키 생성자
new Cookie(String name, String value)
쿠키 정보를 읽는 메소드들
String getName()
쿠키의 이름을 반환
String getValue()
쿠키의 값을 반환
String getDomain()
쿠키가 적용되는 도메인을 반환
String getPath()
쿠키의 적용 경로를 반환 단 setPath()로 설정한적이없으면 null을 반환
int getMaxAge()
쿠키의 유지기간을 반환 겟패스와 마찬가지로 설정한적이없으면 -1을 반환한다
쿠키쪽은 예제에서 에이잭스 문법과 자바스크립트,제이쿼리문을 사용하기때문에
집에가서 직접찾아보면서 자습예정.