JSP Implicit Objects는 Java 객체들입니다. 명시적으로 개발자가 선언하지 않아도 JSP Container에서 제공하는 객체들이라고 보시면 되겠습니다. 그래서 JSP Implicit Objects 를 pre-defined 변수라고 하기도 합니다.
JSP 는 아홉가지의 Implicit Objects를 지원합니다. 저도 아는 객체들이 눈에 보이네요.
Object | Description |
---|---|
request | This is the HttpServletRequest object associated with the request. |
response | This is the HttpServletResponse object associated with the response to the client. |
out | This is the PrintWriter object used to send output to the client. |
session | This is the HttpSession object associated with the request. |
application | This is the ServletContext object associated with application context. |
config | This is the ServletConfig object associated with the page. |
pageContext | This encapsulates use of server-specific features like higher performance JspWriters. |
page | This is simply a synonym for this, and is used to call the methods defined by the translated servlet class. |
Exception | The Exception object allows the exception data to be accessed by designated JSP. |
request 객체는 javax.servlet.http.HttpServletRequest 객체의 인스턴스입니다. 사용자가 페이지를 요청할 때마다 JSP engine 이 해당 요청에 대한 새로운 request객체를 생성합니다. request 객체는 HTTP header 정보를 얻어오기위한 메소드를 제공합니다. form data, cookies, HTTP methods같은 정보들이 헤더정보에 있겠죠.
request 객체와 관련된 메소드들에 대한 정보 및 사용법은 오른쪽 링크에서 확인하실 수 있습니다. JSP - Client Request.
response 객체는 javax.servlet.http.HttpServletResponse 객체의 인스턴스입니다. 서버가 request 객체를 만드는 것처럼, 클라이언트로 보내기위한 response 객체도 만듭니다.
response 객체는 또한 새로운 HTTP헤더 생성을 다루기위한 인터페이스를 정의합니다. 이 객체를 통해서 JSP 개발자들은 쿠키, 날짜 스탬프, HTTP 상태 코드등을 추가할 수 있습니다.
response 객체와 관련된 메소드들에 대한 정보 및 사용법은 우측 링크에서 확인하실 수 있습니다. JSP - Server Response.
out 객체는 javax.servlet.jsp.JspWriter 객체의 인스턴스이며 content를 response안에 보내기 위해서 사용됩니다.
처음의 JspWriter 객체는 페이지의 버퍼 사용여부에 따라 다르게 초기화됩니다. Buffering 기능은 page 디렉티브의 buffered='false' 속성을 통해서 쉽게 off 할 수 있습니다. JspWriter 객체는 java.io.PrintWriter 클래스와 거의 동일한 메소드들을 가지고 있습니다. 하지만 JspWriter는 추가적으로 버퍼링을 다루기 위한 메소드들을 가지고 있습니다. PrintWriter 객체와는 다르게 JspWriter 는 IOExceptions을 던집니다.
boolean, char, int, double, object, String, etc. 을 쓰고싶을 때 사용하는 메소드는 아래와 같습니다.
Method | Description |
---|---|
out.print(dataType dt) | Print a data type value |
out.println(dataType dt) | Print a data type value then terminate the line with new line character. |
out.flush() | Flush the stream. |
session객체는 javax.servlet.http.HttpSession의 인스턴스죠. Java Servlets의 세션과 동일한 역할을 한다고 보시면 됩니다.
session 객체는 사용자가 여러번 요청을 하게 될 때 그 요청들 사이에 세션을 추적 및 관리하기 위해서 사용됩니다.
session 객체의 사용법은 우측 링크에서 확인하실 수 있습니다. JSP - Session Tracking.
application 객체는 ServletContext객체의 wrapper객체입니다. 실제로는 javax.servlet.ServletContext 객체의 인스턴스입니다.
이 객체는 JSP page 생명주기 전체를 대표한다고 보시면 됩니다. 애플리케이션이 종료되기 전까지 살아있는 객체죠. JSP 페이지가 초기화될 때 생성되고 jspDestroy()메소드에 의해 JSP페이지가 소멸될 때 이 객체도 소멸됩니다.
application 객체에 속성을 추가함으로써 해당 애플리케이션을 구성하는 모든 JSP 파일들이 이곳에 접근할 수 있는 권한이 생기게 됩니다.
Application 객체의 간단한 사용법은 우측 링크에서 확인하실 수 있습니다. JSP - Hits Counter
config 객체는 javax.servlet.ServletConfig 의 인스턴스입니다.
이 객체는 JSP 개발자가 Servlet 이나 JSP 엔진 초기화 파라미터 ( paths 또는 file 위치 등 )에 접근할 수 있도록 해줍니다.
많이 쓰이지 않는 객체이며 아마 쓰게 된다면 아래와 같이 쓰는 것 말고는 정말 쓸일이 없을 것입니다.
config.getServletName();
이건 서블릿명을 얻어오는 메소드입니다. WEB-INF\web.xml 파일의 <servlet-name> 요소에 들어있는 이름을 얻어오는 것입니다.
pageContext 객체는 javax.servlet.jsp.PageContext 객체의 인스턴스입니다. pageContext 객체는 JSP page 전체를 대표합니다.
이 객체는 페이지 정보를 얻어오기 위한 수단으로 사용됩니다.
이 객체는 각 요청마다 request 와 response객체로의 래퍼런스를 저장합니다. application, config, session, 그리고 out 객체들은 이 객체의 속성에 접근해서 얻어올 수 있습니다. pageContext 객체는 또한 해당 JSP page에서 발생된 directives의 정보를 저장하고 있습니다. ( buffering 정보, errorPageURL, 그리고 page scope같은 정보들 말이죠 ).
PageContext 클래스는 PAGE_SCOPE, REQUEST_SCOPE, SESSION_SCOPE, 그리고 APPLICATION_SCOPE 필드들을 정의합니다. 40개 이상의 메소드를 제공하며 그 중 반은 javax.servlet.jsp.JspContext 클래스에서 상속받은 메소드들입니다.
가장 중요한 메소드 중 하나는 removeAttribute인데 이 메소드는 하나 또는 두개의 파라미터를 받습니다. pageContext.removeAttribute ("attrName") 는 모든 scope에서 attrName 속성을 제거합니다. 아래에 나온 문장은 page scope에서만 해당 속성을 제거합니다.
pageContext.removeAttribute("attrName", PAGE_SCOPE);
pageContext 객체에 대한 사용법은 우측 링크에서 확인하실 수 있습니다. JSP - File Uploading.
실제 페이지를 참조하고 있는 객체입니다. JSP page전체를 대표하는 객체라고 생각하시면 됩니다..
이 페이지 객체는 실제로 자바에서 나오는 this 객체의 동의어라고 보시면 되겠습니다.
exception 객체는 wrapper 객체입니다. 이전 페이지에서 던져진 exception을 가지고 있죠. 뭐 이거야 자바를 하신 분들이라면 예외처리를 위한 객체라고 금방 아실 겁니다. 뭐 더 설명할게 없네요.
이 객체에 대한 사용법은 우측 링크에서 확인하실 수 있습니다. JSP - Exception Handling.
Reference : http://www.tutorialspoint.com/jsp/jsp_implicit_objects.htm
[JSP] Response Object ( Server Response, Auto Refresh ) (0) | 2019.02.15 |
---|---|
[JSP] Request Object ( Client Request ) (0) | 2019.02.15 |
[JSP] Actions ( 액션 ) (0) | 2019.02.15 |
[JSP] Custom Tags ( 커스텀, 사용자 정의 태그 ) (0) | 2019.02.15 |
[JSP] Directives ( 디렉티브 ) (0) | 2019.02.15 |