[Java] JSP - 내장객체, 인스턴스 사용범위

chael_lo·2021년 8월 28일
0

Java

목록 보기
52/52

내장객체(Implicit Object)

WAS에 의해 JSP 문서에 기본적으로 제공되는 Java 객체(인스턴스)다.

내장객체의 종류

page(HttpJspPage)
JSP 문서정보를 저장하여 제공하기 인스턴스(메소드의 this와 유사)

config(ServletConfig)
WAS에 등록된 값을 제공하기 위한 인스턴스

out(JspWriter)
클라이언트에 전달할 응답 문서를 만들기 위한 인스턴스(출력 스트림)

request(HttpServletRequest)
클라이언트의 요청정보를 제공하기 위한 인스턴스

response(HttpServletResponse)
클라이언트의 응답정보를 제공하기 위한 인스턴스

session(HttpSession)
클라이언트와의 연결 지속성을 제공하기 위한 인스턴스

application(ServletContext)
컨텍스트 정보를 저장하여 제공하기 위한 인스턴스

pageContext(PageContext)
JSP 문서에 필요한 Java 객체를 제공하기 위한 인스턴스

exception(Throwable)
JSP 실행시 발생되는 예외를 저장하여 제공하기 인스턴스
page Directive의 isErrorPage 속성값을 [true]로 설정한 경우에만 제공되는 내장객체

인스턴스 사용범위(Scope)

WAS에 의해 관리되는 JSP 문서의 내장객체를 이용하여 인스턴스를 속성값으로 저장하고 반환받아 사용할 수 있는 범위를 말한다.
내장객체에 따라 속성값으로 저장된 인스턴스의 사용범위가 다르게 설정된다.

page Scope

pageContext 내장객체를 이용하여 인스턴스를 속성값으로 저장
인스턴스를 속성값으로 저장한 JSP 문서에서만 속성값을 반환받아 사용

request Scope

request 내장객체를 이용하여 인스턴스를 속성값으로 저장
인스턴스를 속성값으로 저장한 JSP 문서와 스레드가 이동된 JSP 문서에서 속성값을 반환받아 사용

session Scope

session 내장객체를 이용하여 인스턴스를 속성값으로 저장
컨텍스트에 존재하는 모든 JSP 문서에서 속성값을 반환받아 사용(바인딩된 세션 사용)

application Scope

application 내장객체를 이용하여 인스턴스를 속성값으로 저장
컨텍스트에 존재하는 모든 JSP 문서에서 속성값을 반환받아 사용(컨텍스트 사용)

내장객체와 인스턴스 관련 메서드

  • 내장객체에 인스턴스를 속성값으로 저장(변경)하는 메소드
내장객체.setAttribute(String attributeName, Object attributeValue)
  • 내장객체에 속성값으로 저장된 인스턴스를 반환하는 메소드
내장객체.getAttribute(String attributeName)
  • 내장객체에 속성값으로 저장된 인스턴스를 제거하는 메소드
내장객체.removeAttribute(String attributeName)

예시) 내장객체에 인스턴스를 속성값으로 저장하기

pageContext.setAttribute("pageName", "홍길동");//page Scope
request.setAttribute("requestName", "임꺽정");//request Scope
session.setAttribute("sessionName", "전우치");//session Scope
application.setAttribute("applicationName", "일지매");//application Scope

예시) 내장객체에 속성값으로 저장된 인스턴스를 반환받기

내장객체에 속성명으로 저장된 속성값이 없는 경우 null을 반환한다.
속성값은 Object 타입으로 반환되므로 명시적 객체 형변환 후 사용한다.

String pageName=(String)pageContext.getAttribute("pageName");
String requestName=(String)request.getAttribute("requestName");
String sessionName=(String)session.getAttribute("sessionName");
String applicationName=(String)application.getAttribute("applicationName");
profile
천천히 꾸준히

0개의 댓글