Computer >> 컴퓨터 >  >> 프로그래밍 >> 프로그래밍

JSP application 객체란 무엇일까? ServletContext 핵심 개념 정리

JSP application 객체란 무엇인가?

JSP에서 application 객체는 생성된 서블릿(Servlet)의 ServletContext 객체를 직접 감싸는 래퍼(wrapper)이며, 실제로는 javax.servlet.ServletContext 클래스의 인스턴스입니다.

쉽게 말해, application 객체는 웹 애플리케이션 전체를 대표하는 내장 객체로, 컨테이너(예: Tomcat)가 웹 애플리케이션을 로드할 때 생성되고 애플리케이션이 종료될 때까지 유지됩니다.

application 객체의 생명주기

application 객체는 JSP 페이지가 초기화되는 시점에 함께 생성되며, 해당 JSP 페이지가 jspDestroy() 메서드에 의해 제거되는 시점까지 존재합니다. 즉, 이 객체는 JSP 페이지의 전체 생명주기(lifecycle)를 대표한다고 할 수 있습니다.

다른 내장 객체와 비교하면 그 차이가 분명해집니다.

  • request 객체: 하나의 요청-응답 주기 동안만 유효
  • session 객체: 특정 사용자의 세션이 유지되는 동안 유효
  • application 객체: 웹 애플리케이션이 실행되는 전체 기간 동안 유효하며, 모든 사용자가 공유

application 객체의 활용 방법

application 객체에 속성(attribute)을 추가하면, 웹 애플리케이션을 구성하는 모든 JSP 파일이 해당 속성에 접근할 수 있습니다. 이를 활용하면 방문자 수 카운터, 공통 설정 값, 전역 상수 등을 여러 페이지에서 손쉽게 공유할 수 있습니다.

다음은 간단한 사용 예시입니다.

<%-- 속성 저장 --%>
<%
    application.setAttribute("siteName", "MyWebApp");
%>

<%-- 다른 JSP 페이지에서 속성 읽기 --%>
<p>사이트 이름: ${applicationScope.siteName}</p>

이처럼 application 객체는 웹 애플리케이션 전체 범위(scope)에서 데이터를 공유해야 할 때 가장 적합한 도구입니다. 단, 모든 사용자가 값을 공유하므로 사용자별 고유 데이터는 session 객체에 저장하는 것이 바람직합니다.