본문 바로가기
괴발개발/jsp

Servlet / JSP 내장 객체와 범위(scope)

by 맛길만걷자 2024. 6. 25.
728x90
반응형

Servlet / JSP에는 기본적으로 내장되어있는 객체가 존재함

총 4종류가 존재하며 각각 영향을 미칠 수 있는 범위가 다름

 

1. page scope : 현재 페이지

-> 현재 Servlet 또는 현재 JSP에서만 사용 가능 (1 페이지에서만 값이 유지됨)

 

2. request scope 

-> 요청 받은 Servlet/JSP + 요청 위임함 Servlet / JSP

(2페이지 이상에서 값이 유지됨)

 

3. session scope

-> 사이트에 접속한 브라우저당 1개씩 생성, 같은 브라우저 끼리리 공유

브라우저 종료 또는 세션 만료 시 소멸

브라우저가 종료되지 않거나 세셔이 만료되지 않으면 계속 유지

(ex. 로그인)

 

- 원리 간단 설명 

 클라이언트가 서버접속 -> 클라이언트 접속한 브라우저 당 session 1개 생성해서 저장

->브라우저 종료시 까지 session 유지

 

4. application scope

-> 하나의 웹 애플리케이션 당 1개 생성 

-> 서버 종료 전 까지 웹 애플리케이션 어디서든 사용 가능

(서버꺼질때까지 유지)

 

java 사용법.

// 2. request scope
req.setAttribute("message", "request scope에 저장된 메시지입니다.");

// 3. session scope
// 3-1 ) HttpSession 내장 객체 얻어오기
HttpSession session = req.getSession();

// 3-2 ) Session 범위로 값 세팅(request와 방법 동일)
session.setAttribute("sessionValue", "500");
session.setAttribute("message", "session scope에 저장된 메시지입니다.");

//4) application scope
// 4-1 ) SerlvetContext 내장 객체 얻어오기
ServletContext application = req.getServletContext();

//4-2) application 범위로 값 세팅(request와 방법 동일)
application.setAttribute("appValue", "곧 점심시간^-^");
application.setAttribute("message", "application scope에 저장된 메시지입니다.");

 

*** scope 우선 순위 ***

page>request > session > application

** 원하는 범위(scope)의 값 얻어오기(OOOScope)

${requestScope.message }

${sessionScope.message }

${ applicationScope.message }

728x90
반응형

'괴발개발 > jsp' 카테고리의 다른 글

서블릿 통해서 JSP로 응답하기.  (0) 2024.06.28
vscode jsp 자동완성 (자동설정)  (0) 2024.06.26
JSP  (0) 2024.06.24