JSP 암시적 객체는 각 페이지에 대해 JSP 컨테이너에서 제공하는 Java 객체입니다. 개발자는 이를 명시적인 선언 없이 직접 사용할 수 있습니다. JSP 암시적 객체는 사전 정의된 변수라고도 합니다.
JSP가 지원하는 9개의 암시적 객체:
물체 | 설명하다 |
---|---|
요구 | HttpServletRequest 클래스의 인스턴스 |
응답 | HttpServletResponse 클래스의 인스턴스 |
밖으로 | 웹 페이지에 결과를 출력하는 데 사용되는 PrintWriter 클래스의 인스턴스 |
세션 | HttpSession 클래스의 인스턴스 |
애플리케이션 | 애플리케이션 컨텍스트와 관련된 ServletContext 클래스의 인스턴스 |
구성 | ServletConfig 클래스의 인스턴스 |
페이지컨텍스트 | JSP 페이지의 모든 객체와 네임스페이스에 대한 액세스를 제공하는 PageContext 클래스의 인스턴스 |
페이지 | Java 클래스의 이 키워드와 유사 |
예외 | Exception 클래스의 객체는 오류가 발생한 JSP 페이지의 해당 예외 객체를 나타냅니다. |
요청 객체는 javax.servlet.http.HttpServletRequest 클래스의 인스턴스입니다. 클라이언트가 JSP 페이지를 요청할 때마다 JSP 엔진은 요청을 나타내는 새로운 요청 객체를 생성합니다.
요청 객체는 HTTP 헤더 정보, 쿠키, HTTP 메소드 등을 얻기 위한 일련의 메소드를 제공합니다.
응답 객체는 javax.servlet.http.HttpServletResponse 클래스의 인스턴스입니다. 서버가 요청 객체를 생성할 때 클라이언트에 응답하기 위한 응답 객체도 생성합니다.
응답 객체는 HTTP 헤더 모듈 처리를 위한 인터페이스도 정의합니다. 이 객체를 통해 개발자는 새로운 쿠키, 타임스탬프, HTTP 상태 코드 등을 추가할 수 있습니다.
out 객체는 javax.servlet.jsp.JspWriter 클래스의 인스턴스이며 응답 객체에 내용을 쓰는 데 사용됩니다.
초기 JspWriter 클래스 객체는 페이지 캐시 여부에 따라 다른 인스턴스화 작업을 수행합니다. 캐싱은 페이지 지시문의 buffered='false' 속성을 사용하여 쉽게 끌 수 있습니다.
JspWriter 클래스에는 java.io.PrintWriter 클래스의 메소드 대부분이 포함되어 있습니다. 그러나 JspWriter는 캐싱을 처리하기 위해 특별히 설계된 몇 가지 새로운 방법을 추가했습니다. 또한 JspWriter 클래스는 IOException을 발생시키지만 PrintWriter는 그렇지 않습니다.
다음 표에는 boolean, char, int, double, String, object 및 기타 유형의 데이터를 출력하는 데 사용할 중요한 방법이 나열되어 있습니다.
방법 | 설명하다 |
---|---|
out.print(데이터 유형 dt) | 출력 유형 값 |
out.println(데이터 유형 dt) | Type 유형의 값을 출력한 후 줄 바꿈 |
밖으로.플러시() | 출력 스트림 플러시 |
세션 객체는 javax.servlet.http.HttpSession 클래스의 인스턴스입니다. Java Servlet의 세션 객체와 동일한 동작을 갖습니다.
세션 개체는 클라이언트 요청 간의 세션을 추적하는 데 사용됩니다.
애플리케이션 객체는 서블릿의 ServletContext 클래스 객체를 직접 래핑하며 javax.servlet.ServletContext 클래스의 인스턴스입니다.
이 객체는 전체 라이프사이클 동안 JSP 페이지를 나타냅니다. 이 객체는 JSP 페이지가 초기화될 때 생성되고 jspDestroy() 메서드가 호출될 때 제거됩니다.
애플리케이션에 속성을 추가하면 웹 애플리케이션을 구성하는 모든 JSP 파일에서 이러한 속성에 액세스할 수 있습니다.
구성 객체는 서블릿의 ServletConfig 클래스 객체를 직접 래핑하는 javax.servlet.ServletConfig 클래스의 인스턴스입니다.
이 객체를 사용하면 개발자는 파일 경로 등과 같은 Servlet 또는 JSP 엔진의 초기화 매개변수에 액세스할 수 있습니다.
다음은 config 객체를 사용하는 방법입니다. 그다지 중요하지 않으므로 일반적으로 사용되지 않습니다.
config.getServletName();<servlet-name> 요소에 포함된 서블릿 이름을 반환합니다. <servlet-name> 요소는 WEB-INFweb.xml 파일에 정의되어 있습니다.
pageContext 객체는 javax.servlet.jsp.PageContext 클래스의 인스턴스이며 전체 JSP 페이지를 나타내는 데 사용됩니다.
이 개체는 대부분의 구현 세부 정보를 필터링하면서 페이지 정보에 액세스하는 데 주로 사용됩니다.
이 객체는 요청 객체와 응답 객체에 대한 참조를 저장합니다. 애플리케이션 개체, 구성 개체, 세션 개체 및 out 개체는 이 개체의 속성에 액세스하여 내보낼 수 있습니다.
pageContext 객체에는 캐시 정보, ErrorPage URL, 페이지 범위 등을 포함하여 JSP 페이지에 전달되는 명령 정보도 포함되어 있습니다.
PageContext 클래스는 PAGE_SCOPE, REQUEST_SCOPE, SESSION_SCOPE 및 APPLICATION_SCOPE를 포함한 일부 필드를 정의합니다. 또한 40개 이상의 메소드를 제공하며 그 중 절반은 javax.servlet.jsp.JspContext 클래스에서 상속됩니다.
중요한 메소드 중 하나는 하나 또는 두 개의 매개변수를 허용하는 RemoveArribute()입니다. 예를 들어 pageContext.removeArribute("attrName")은 네 가지 범위에서 관련 속성을 제거하지만 다음 메서드는 특정 범위의 관련 속성만 제거합니다.
pageContext.removeAttribute("attrName", PAGE_SCOPE);이 개체는 페이지 인스턴스에 대한 참조입니다. JSP 페이지 전체를 대표한다고 볼 수 있습니다.
페이지 개체는 이 개체의 동의어입니다.
예외 개체는 이전 페이지에서 발생한 예외 정보를 래핑합니다. 오류 조건에 대한 적절한 응답을 생성하는 데 자주 사용됩니다.