JSP Scope에 대하여

2025. 2. 23. 00:14·Server/JSP - TomCat - Servlet

⭐️ JSP에서 Scope란 ?

 

 

Scope란 웹 애플리케이션에서 변수(데이터)의 유효 범위를 저장하는 개념이다.

 

JSP는 데이터를 저장할 수 있는 4가지의 스코프를 제공하며, 각 스코프에 따라 데이터 유지 범위와

공유 가능성이 달라진다. 

 

위 사진과 같이 4가지 스코프가 존재한다.

 

📌  page scope(현재 JSP 페이지에서만 유효)

현재 JSP 페이지에서만 유지되는 데이터.

페이지가 바뀌면 데이터가 사라진다.

공유범위가 가장 좁다.

같은 JSP 내에서만 사용가능하다. -> 다른 JSP로 이동하면 변수값 유지 X

 

[ Page Scope 예시 ]

<% pageContext.setAttribute("msg", "안녕하세요! (page 스코프)"); %>
<p>${msg}</p>
<!-- 현재 페이지에서만 사용 가능 -->

 

page scope 결과 화면

 

EL을 이용하여 키를 입력하여 값을 출력

 


📌 
request scope

클라이언트의 요청때마다 매번 생성되는 객체 , 클라이언트의 요청이 끝날 때까지 유지됨.

 

이 영역에 데이터를 담으면 해당 request객체를 포워딩 받는 응답 jsp에서만 사용 가능.

 

[ request scope 예시 ]

req.setAttribute("scope", "request scope");
req.setAttribute("student", new Person("홍길동", 20, "남자"));
req.setAttribute("classRoom", "1강의장");

// 포워딩
req.getRequestDispatcher("views/1_EL/01_el.jsp").forward(req, resp);

 

[ 포워딩 받는 jsp ]

수강생 정보
<ul>
  <li>이름 : ${student.name}</li>
  <li>나이 : ${student.age}</li>
  <li>성별 : ${student.gender}</li>
</ul> <br>

강의장 : ${classRoom} <br>

scope값 : ${scope}

 

request scope 결과

 

📌  session scope

한 브라우저당 1개 존재하는 객체.

이 영역에 데이터를 담으면 jsp/servlet단에서 사용 가능.

브라우저를 닫거나 세션이 만료될 때까지 유지된다 (기본 30분)

 

[ session scope 예시 ]

 // 객체 생성해줘야 사용 가능
 HttpSession session = req.getSession();
 
session.setAttribute("scope", "session");
session.setAttribute("academy", "코딩스쿨");
session.setAttribute("teacher", new Person("김지원", 27, "여자"));

 

[ 포워딩 받는 jsp ]

학원명 : ${academy} <br>
강사 : ${teacher.name}, 나이 : ${teacher.age} , 성별 : ${teacher.gender}<br>

scope값 : ${scope}

 

session scope 결과

 

결과가 다음과 같이 나오는 이유는

 

scope는 가장 가깝고, 존재하는 scope부터 찾기 때문에 

 

page > request > session > application 순으로 scope를 찾는다 ‼️

 

결과가 reuqest scope로 나오는 이유는 request 객체를 포워딩 받았기 때문에 scope는

request scope인것이다.

 

📌  application scope

한 애플리케이션당 1개만 존재하고, 

웹 애플리케이션 전체에서 공유되는 데이터이다.

 

서버가 종료될 때까지 유지된다.

 

[ application scope 예시 ]

<%
    application.setAttribute("siteName", "My Website");
%>

<p>웹사이트 이름: ${siteName}</p>

 

application scope 결과

 


Scope의 범위를 알면 get메서드를 통해서 직접
값을 꺼내지않고 EL문법을 통해서 더 간편하게 꺼낼 수 있다.

'Server > JSP - TomCat - Servlet' 카테고리의 다른 글

JSP 포워딩(Forwarding)과 리다이렉트(Redirect)의 차이  (1) 2025.02.27
session.removeAttribute()와 session.invalidate() 차이  (2) 2025.02.26
JSTL에 대하여  (2) 2025.02.24
Servlet에대하여  (0) 2025.02.21
IntelliJ 와 Tomcat 연결  (2) 2025.02.20
'Server/JSP - TomCat - Servlet' 카테고리의 다른 글
  • session.removeAttribute()와 session.invalidate() 차이
  • JSTL에 대하여
  • Servlet에대하여
  • IntelliJ 와 Tomcat 연결
KoesJin
KoesJin
hEELo
  • KoesJin
    Seok DevLog
    KoesJin
  • 전체
    오늘
    어제
    • 분류 전체보기 (109)
      • Back End (31)
        • DataBase (15)
        • JAVA (12)
        • JDBC (4)
      • Front End (9)
        • HTML5 & CSS (3)
        • Java Script (6)
        • REACT (0)
      • Server (9)
        • JSP - TomCat - Servlet (7)
        • Spring Boot (2)
      • GitHub (1)
      • IT 지식 (기술면접 대비) (20)
      • Weekly TIL (39)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글쓰기
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    INNER JOIN
    DAO
    where
    commit
    exception
    GC
    weekly til - day 43
    View
    weekly til - day 40
    from
    dml
    weekly til - day 39
    순서에 대하여
    weekly til - day 38
    order by
    weekly til - day 41
    DDL
    MVC 패턴
    css
    select
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
KoesJin
JSP Scope에 대하여
상단으로

티스토리툴바