1. JSP Scope
한개이상의 jsp가 모인 그룹
Scope 영역의 종류는 page, request, session, application
jsp가 제공해주는 내장객체는 request객체, session객체 ,application객체 이다.
영역(Scope) : 속성을 공유할 수 있는 유효범위
▶ Scope 영역
Scope는 직역하면 범위를 말한다.
JSP페이지에서 사용되는 객체들은 JSP 내장객체이던 페이지 내에서 만들어졌던 모두 정해진 영역안에서만 사용이 가능하다.
즉, 프로그래밍에서 scope는 변수에 대한 접근과 변수가 존재할 수 있는 영역을 의미한다.
또는 beans가 살아있을 수 있는 기간을 말하며 아래와 같이 page, request, session, application 4가지가 있다.
▷application
application 영역은 하나의 웹 어플리케이션 당 1개의 applicaition 객체가 생성된다.
즉, 같은 웹 어플리케이션에 요청되는 페이지들은 같은 객체를 공유한다.
한 사이트에 속해 있는 모든 페이지 영역에서 사용되는 객체이다. 모든이가 공유할 수 있는 데이터이다.
서버(톰캣)가 구동될때 생기는 객체이다.
=>웹 어플리케이션의 생명주기와 일치한다.
▷session
한 이용자가 한 사이트에서 지나가는 모든 페이지 영역에서 사용하는 객체
session은 맨 처음 딱 한번 생성되고 페이지를 이동할떄마다 그 session이 유지된다.
session 내장객체는 세션이 유지되고 있는 범위 안에서 즉, session scope안에서 서로 다른 페이지에서도 객체(데이터)들을 공유할 수 있는 속성을 가지고 있으며 이 속성에 내장된 객체(데이터)는 세션이 종료되는 순간에 반환된다.
session 영역은 하나의 웹 브라우저 당 1개의 session 객체가 생성된다.
즉, 같은 웹 브라우저 내에서는 요청되는 페이지들은 같은 객체를 공유하게 된다.
=>맨 처음 요청이 들어왔을때 딱 한번 생성되고 일정시간이 지나면 소멸한다.(session의 생성은 톰캣에서 한다.)
서버에 저장이 된다. 소멸과 유지시간은 임의로 변경이 가능하다
▷request
request객체가 포워드 되는 영역에서 사용되는 객체
request 영역은 객체를 하나 또는 두 개의 페이지 내에서 공유할 수 있다.
request객체 자체는 포워드해져야 의미가 있으며 소멸되는 성질을 가지고 있다.
즉 요청하고 포워드하는 과정의 jsp를 request영역이라고 한다.
(include 액션 태그, forward 액션 태그를 사용하면 request 기본 객체를 공유하게 되어서 같은 reqeust 영역이 된다.)
=>요청이 있을떄 생성되고 요청에 대한 처리가 끝나면 소멸한다.
▷page
현재 처리되고 있는 한개의 그 페이지 영역
이 page영역은 위의 3가지 영역과는 다르게 page의 내장객체가 아닌 pageContext 내장객체를 통해 접근할 수 있는 영역이다.
한번의 웹 브라우저(클라이언트)의 요청에 대해 하나의 jsp페이지가 호출된다. 웹 브라우저의 요청이 들어오면 이때 단 한개의 페이지에만 대응이 된다. 따라서 page영역은 객체를 하나의 페이지 내에서만 공유한다.
=> A페이지에서 pageContext.setAttribute()를 할 시 넘어간 B페이지에서는 관련된 속성을 사용할 수 없다.
[객체 흐름을 나타낸 이미지]
2. Session vs Cookie
저장위치
- Session
- 서버에 저장된다.
- Cookie
- 클라이언트의 메모리에 저장된다.
[출처]
http://sensibilityit.tistory.com/45
http://m.blog.naver.com/milkoon1/220860106284
'업무일기' 카테고리의 다른 글
[회사공부] 2017년 2월 17일 금요일 (0) | 2017.02.17 |
---|---|
[회사공부] 2017년 2월 16일 목요일 (0) | 2017.02.16 |
[회사공부] 2017년 2월 13일 월요일 (0) | 2017.02.13 |
[회사공부] 2017년 2월 8일 수요일 (0) | 2017.02.08 |
[회사공부] 2017년 2월 7일 화요일 (0) | 2017.02.07 |