자바 빈즈란 ? : show400035.tistory.com/83?category=975925
Scope 출처 : victorydntmd.tistory.com/m/155
나중에 Scope 예제를 통한 객체의 범위 감 익히기 : m.blog.naver.com/PostView.nhn?blogId=javaking75&logNo=140181686711&proxyReferer=&proxyReferer=https:%2F%2Fwww.google.co.kr%2F
- 객체 범위의 종류
- scope 속성
scope 속성값으로 page, request, session 그리고 application 중 하나를 지정할 수 있다 이 속성이 생략되면 기본값으로 page가 적용됩니다.
- page : 하나의 JSP 페이지에서만 사용
- request : 요청이 처리되는 동안 forward, include 된 페이지 간에 사용
- session : 클라이언트 단위로 사용
- application : 웹 애플리케이션 단위로 사용
알아본바로는 Beans의 scope 속성에 관한 내용인거 같은데 각 객체에는 범위가 존재한다고 한다. 알아보자
1. 객체 범위 종류
웹 애플리케이션에는 4개의 객체 범위가 존재합니다.
- page 영역
- 한 번의 클라이언트 요청이 오면, 하나의 JSP 페이지가 응답됩니다.
- page 영역은 이 때 하나의 JSP 페이지 내에서만 객체를 공유하는 영역을 의미합니다. ( JSP only )
- JSP 파일에는 pageContext가 내장되어 있으며, 이 객체는 page 영역에서만 유효합니다.
- JSP 파일에 <% %> 안에 변수를 사용하면 이 변수는 해당 JSP 파일 내에서만 유효한데, page 스코프에 정의된 객체이기 때문입니다.
- request 영역
- 요청을 받아서 응답하기까지 객체가 유효한 영역입니다.
- Servlet에서 forward 또는 include를 사용하면, request 요청 객체가 공유되어서 request 영역이 됩니다.
- 지금까지 Servlet에서 JSP로 객체를 보낼 때 사용했던 방법입니다.
- Servlet에서는 reqeust.setAttribute("이름", 객체); 로 전달하였고,
- JSP에서는 Obejct ob j = request.getAttribute("이름"); 으로 받았습니다.
- 이 때 사용했던 request 객체가 request 영역입니다.
- session 영역
- 하나의 브라우저 당 1개의 session 객체가 생성됩니다.
- 즉, 같은 브라우저 내에서 요청되는 페이지들은 같은 객체를 공유하게 되는데, 이를 세션 영역이라고 합니다.
- 세션이 종료되면 객체는 반환됩니다.
- requset.getSession() 메서드를 호출하여 세션 영역의 객체를 얻을 수 있습니다.
- application 영역
- 하나의 애플리케이션 당 1개의 application 객체가 생성됩니다.
- 즉, 같은 애플리케이션 내에서 요청되는 페이지들은 같은 객체를 공유하게 되는데 이를 애플리케이션 영역이라고 합니다.
- 애플리케이션이 종료되면 객체는 반환됩니다.
- request.getServletContext() 메서드를 호출하여, 애플리케이션 영역의 객체를 얻을 수 있습니다.
이로 미루어 보아 scope 범위는 page < request < session < application 순이라는 것을 알 수 있습니다.
* 간단요약(상황에 맞게 쓸 수 있도록)
1. page : 하나의 JSP 페이지 내에서만 객체를 공유하는 영역을 의미한다.
2. request : 요청을 받아서 응답하기까지 객체 유효한 영역임
- Servlet에서 forward 또는 include를 사용하면, request 요청 객체가 공유되어서 request 영역이 된다.
3. session : 하나의 브라우저 당 1개의 session 객체가 생성된다. 즉, 같은 브라우저 내에서 요청되는 페이지들은 같은 객체를 공유하게 되는데 이를 세션 영역이라고 함. (세션이 종료되면 객체는 반환된다.)
4. application : 하나의 애플리케이션 당 1개의 application 객체가 생성됨. 즉, 같은 애플리케이션 내에서 요청되는 페이지들은 같은 객체를 공유하게 되는데 이를 애플리케이션 영역이라고 함. (getServletContext() 메서드 호출)
'자바과정 > JSP' 카테고리의 다른 글
JSP 실습 application과 session (scope) (0) | 2021.03.10 |
---|---|
JSP 장바구니(로그아웃, 페이지 4개, 빈 장바구니 처리, 아이디 공백처리) (0) | 2021.03.10 |
JSP 오늘의 강의내용 끄적... (0) | 2021.03.08 |
JSP 구구단 (자바코드) (0) | 2021.03.08 |
이클립스에서의 JSP (0) | 2021.03.06 |
댓글