ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JSP의 내장객체, 암시적 객체(implicit object) - application, pageContext, page
    백엔드/서블릿&JSP 2021. 1. 14. 10:51

    JSP는 총 9개의 내장 객체, 암시적 객체를 가진다.

     

    암시적 객체란 개발자가 따로 명시하지 않아도 이미 JSP 자체에서 자동으로 제공하는 객체를 의미한다.

     

    암시적 객체는 아래와 같이 총 9개가 존재한다.

     

    이름

    관련 API

    설명

    Request

    javax.servlet.http.HttpServletRequest

    jsp에서 클라이언트의 요청을 객체화 한 것

    Response

    javax.servlet.http.HttpServletResonse

    jsp에서 클라이언트의 요청에 대한 회신을 객체화 한 것

    Config

    javax.servlet.jsp.jspwriter

    초기화 단계를 위해 입력한 정보를 저장하는 객체

    Application

    javax.servlet.ServletContext

    어플리케이션(프로젝트) 단위의 context를 객체화 한 것

    Session

    javax.servlet.http.HttpSession

    클라이언트 데이터 유지용 세션을 객체화 한 것

    PageContext

    javax.servlet.jsp.PageContext

    jsp 페이지의 context에 관한 객체

    Page

    java.lang.Object

    현재 jsp 페이지에 관한 객체

    out

    javax.servlet.jsp.jsp.jspWriter

    jsp 페이지의 출력에 관한 객체

    exception

    java.lang.Throwable

    예외와 관련한 객체

    서블릿과 jsp와 객체들

    객체의 이름을 보면 알겠지만 서블릿과 똑같은게 많다.

     

    API 부분을 봐도 실제로 서블릿에서 사용 중인 것과 동일하다.

     

    실제로 jsp는 서블릿을 확장하며 등장했고, 실제 서버 구동시에도 서블릿과 동일하게 취급받는다.

     

    그렇기에 서블릿의 api를 가져와서 사용하고 있는 것이다.

     

    하지만 그럼에도 jsp는 서블릿과 다른 부분이 존재하고, 서블릿없이도 개발이 가능하다.

     

    그렇기 때문에 개인적으로는 우선은 서블릿, jsp를 분리해서 이해하는게 더 나은 것 같다.

     

    물론 더 나아가 프로젝트를 할 땐 둘을 같이 사용한다.

     

    그래서 둘을 분리하는 것이 의미가 있나 싶겠지만, 나중에 둘이 섞이면 더 햇갈릴 수 있다.

    jsp와 서블릿의 차이점

    jsp는 서블릿에 의존하지만 위에 표에서도 볼 수 있듯이 몇 가지 차이점이 있다.

     

    간략하게 말하면 두 가지 정도만 말하면 아래와 같다.

     

    - application과 sevletContext 용어 차이

    - pageContext의 존재

     

    application 객체는 servletContext와 동일한 개념이다.

     

    프로젝트를 서버에서 구동할 때 프로젝트 단위로 생성되는 context를 의미한다.

     

    pageContext는 jsp페이지에서 생기는 흐름을 제어하거나

     

    현재 페이지와 관련한 내장 객체들을 컨트롤하는 역할을 한다.

Designed by Tistory.