[JSP] 내장객체(Implicit Object)

ImOk·2021년 12월 13일
0

👩‍💻 웹 개발

목록 보기
9/14
post-thumbnail
post-custom-banner

1. JSP 내장객체란?

JSP 페이지에서 <% %>이나 표현식 <%= %>을 작성할 때 별도의 선언 없이 사용하는 자바 객체
아래의 request 객체가 내장객체의 한 종류

v1 = request.getParameter("v1");

JSP 기술 사양서에는 별도 선언 없이 즉시 이용할 수 있는 9개 객체를 정의하고 있다.
_jpsService() 메서드에 선언된 request, response, pageContext, session, application, config, out, page, exception 객체가 이에 해당된다.


2. JSP 내장 객체 종류

분류내장 객체Return Type설명
입출력 관련 객체requestjavax.servlet.http.httpServletRequest
javax.servlet.ServletRequest
웹 브라우저의 요청 정보를 저장하고 있는 객체
responsejavax.servlet.http.httpServletResponse
javax.servlet.ServletResponse
웹 브라우저의 요청에 대한 응답 정보를 저장하는 객체
outjavax.servlet.jsp.JspWriterJSP 페이지의 출력할 내용을 가지고 있는 출력 스트림 객체
외부 환경 정보 제공 객체sessionjavax.servlet.http.HttpSession하나의 웹 브라우저 내에서 정보를 유지하기 위한 세션 정보를 저장하고 있는 객체
applicationjavax.servlet.ServletContext웹 애플리케이션 Context의 정보를 담고 있는 객체
pageContextjavax.servlet.jsp.PageContextJSP 페이지에 대한 정보를 저장하고 있는 객체
서블릿 관련 객체pagejava.lang.ObjectJSP 페이지를 구현한 자바 클래스 객체
configjavax.servlet.ServletConfigJSP 페이지에 대한 설정 정보를 담고 있는 객체
예외 관련 객체exceptionjava.lang.ThrowableJSP 페이지에서 예외가 발생한 경우 사용하는 객체

2-1. request 내장 객체의 메서드

  • 클라이언트의 요청이 있을 때 관련된 정보들을 알 수 있는 메소드
반환타입메소드설명
StringgetRemoteAddr()웹 서버에 연결한 클라이언트의 P주소를 구함
longgetContentLength()클라이어트가 전송한 요청정보의 길이를 구함
StringgetCharacterEncoding()클라이언트가 요청 정보를 전송할 때 사용한 캐릭터셋을 구함
StringgetContentType()클라이언트가 요청 정보를 전송할 때 사용한 컨텐트 타입을 구함
StringgetProtocol()클라이언트가 요청한 프로토콜을 구함
StringgetMethod()데이터 전송 방식을 구함
StringgetContextPath()JSP페이지가 속한 웹어플리케이션의 컨텍스트패스 반환
StringgetServerName()연결할 때 사용한 서버이름을 구함
intgetServerPort()사용중인 프로토콜을 구함

  • 입력폼에 입력한 사용자의 요구사항을 얻어내는 요청 메소드
반환타입메소드설명
StringgetParameter(String name)지정한 이름의 파라미터가 있을 경우 첫 번째 파라미터의 값을 구함
String[]getParameterValues(String name)지정한 이름의 파라미터가 있을 경우 지정한 이름을 가진 파라미터의 모든 값을 String[]으로 구함
EnumerationgetParameterNames()모든 파라미터의 이름을 구함
MapgetParameterMap()전송한 파라미터를 맵 형식으로 구함

3. 내장객체 영역(Scope)

3-1 Page영역

  • 한 번의 웹 클라이언트 요청에 하나의 JSP 페이지가 호출
  • 클라이언트의 요청을 처리하는 JSP 페이지는 요청에 따라 새로운 page영역을 갖게 된다.
  • page 영역은 하나의 페이지 내에서만 공유 가능
  • page 영역은 pageContext 객체를 사용한다.

3-2 request 영역

  • 한 번의 웹 클라이언트 요청에 같은 요청을 공유하는 페이지가 대응
  • 클라이언트로부터 오는 한 번의 요청과 관련된 영역으로, 클라이언트가 요청한 페이지와 요청을 받은 페이지 사이에서 request 내장 객체에 정보를 저장할 수 있다.
  • 브라우저가 결과를 받으면 그 요청과 관련된 request 내장 객체는 사라진다.
  • request 영역은 하나의 요청을 처리하는데 사용되는 모든 JSP 페이지를 포함한다.
  • request 영역에 저장된 정보를 얻기 위해서는 request 객체가 필요.
  • 주로 페이지 모듈화에 사용됨

3-3 session 영역

  • 하나의 웹 브라우저당 1개의 session 객체가 생성
  • 웹 브라우저를 닫기 전까지 페이지를 이동하더라도 유지되며 웹 서버에서 제공하는 것
  • 같은 웹 브라우저 내에서 요청되는 페이지들은 같은 객체를 공유
  • 주로 회원관리 회원인증에서 사용

3-4 application 영역

  • 하나의 웹 브라우저당 1개의 application 객체가 생성
  • 웹 어플리케이션에 속한 모든 페이지, 페이지에 대한 요청, 세션 모두 하나의 application 영역에 속한다.
  • 모든 JSP 페이지는 하나의 application 내장 객체를 공유하고 있으며 이 application 내장 객체가 application 영역에 속한다.

🔗 참고자료

https://ybdeveloper.tistory.com/21
https://velog.io/@withcolinsong/JSP-%EB%82%B4%EC%9E%A5-%EA%B0%9D%EC%B2%B4
https://prinha.tistory.com/entry/JSP-%EB%82%B4%EC%9E%A5%EA%B0%9D%EC%B2%B4Implicit-Object%EC%99%80-%EC%98%81%EC%97%ADScope

profile
ImOk👌
post-custom-banner

0개의 댓글