Scope : jsp 내장 기본 객체의 영역
- 객체의 유효기간이라고도 불리며,객체를 누구와 공유할 것인가를 나타냄
1. page 영역
- 한 번의 웹 브라우저(클라이언트)의요청에 대해 하나의 jsp페이지가 호출됨
- 웹 브라우저의 요청이 들어오면 이 때 한 개의 페이지만 대응 됨
- pageContext 기본 객체 사용
- jsp 파일에 <% %> 안에 변수 사용하면 이 변수는 해당 jsp 파일 내에서만 유효
-> page 스코프에 의해 정의된 객체기때문
- ex) jsp 내에서만 존재하기 때문에 servlet에서 만들 수 없음
- ex) jsp : <% pageContext.setAttribute("num1", 10); %>
${pageScope.num1}
2. request 영역
- 한 번의 웹 브라우저(클라이언트)의 요청에 대해 같은 요청을 공유하는 페이지가 대응됨
- 요청을 받아서 응답하기까지 객체가 유효한 영역
- 객체를 하나 또는 두 개의 페이지 내에서 공유할 수 있음
- include 액션 태그, forward 액션 태그를 사용하면 request 기본 객체를 공유하게 되어서 같은 request 영역이 됨
- 페이지 모듈화에 사용됨
- servlet에서는 request.setAttribue("이름","객체"); 로 전달
jsp에서는 Object obj = request.getAttribute("이름"); 으로 받음
이때 사용한 request 객체가 request 영역임
- ex) servlet : request.setAttribute("num2", 20);
- ex) jsp : ${ requestScope.num2 }
3. session 영역
- 하나의 브라우저 당 1개의 session 객체가 생성됨
- 같은 브라우저 내에서 요청되는 페이지들은 같은 객체를 공유하게 되는데, 이를 세션영역이라 함
- 세션 종료되면 객체 반환
- request.getSession() 메소드를 호출하여 세션 영역의 객체를 얻을 수 있음
- ex) servlet : request.getSession().setAttribute("num3", 30);
- ex) jsp : ${ sessionScope.num3 }
4.application 영역
- 하나의 애플리케이션 당 1개의 application 객체가 생성됨
- 같은 애플리케이션 내에서 요청되는 페이지들은 같은 객체를 공유하게 되는데 이를 애플리케이션영역이라 함
- 애플리케이션 종료되면 객체 반한
- request.getServletContext() 메소드를 호출하여, 애플리케이션 영역의 객체를 얻을 수 있음
- ex) servlet :request.getServletContext().setAttribute("num4", 40);
- ex) servlet : ${ applicationScope.num4 }
scope 범위를 보면 page < request < session < application 순
다른 영역에 같은 이름을 갖는 애트리뷰트가 있다면
스코프 범위에 따라, 애트리뷰트 명은 좁은 범위의 영역부터 큰 범위로 탐색됨. -> 탐색되면 더 큰 범위로 탐색 진행 하지 않음
사용 예제 - 하단에 사이트 보고 하기!
*<%= i %> : jsp에서의 값 표기법, i는 변수
${ i } : el에서의 값 표기법, i는 이름
ex) <%= request.getParameter("a") + 100 %> = ${ param.a + 100 }
참고 사이트 : https://victorydntmd.tistory.com/155
'Servlet & JSP' 카테고리의 다른 글
액션(ACTION) (0) | 2019.06.21 |
---|---|
JSP 예제_errorPage, isErrorPage (0) | 2019.06.20 |
HTTP 응답 상태 (0) | 2019.06.20 |
JSP 예제_includeAction (0) | 2019.06.20 |
JSP 예제_include (0) | 2019.06.20 |