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 객체에 저장하는 것이 바람직합니다.