분명 잔 것 같은데 졸리다

[JSP] 내장 객체 및 영역 본문

FE/JSP

[JSP] 내장 객체 및 영역

スモモ🍒 2024. 2. 26. 17:50

* 내장 객체 : JSP에서 클라이언트의 요청을 받거나 응답할 때 사용됨 (실행될 때 컨테이너가 자동으로 생성)

* 내장 객체 특징

- 컨테이너가 미리 선언해 놓은 참조 변수를 이용해 사용

- 별도의 객체 생성 없이 각 내장 객체의 메서드 사용 가능

(JSP 실행 시 서블릿(자바)으로 변환되어 컴파일될 때 메서드가 생성되면서 내장 객체의 참조 변수를 컨테이너가 생성)

- JSP 문서 안의 스크립틀릿과 표현식에서만 사용 가능, 선언부에서는 즉시 사용 불가 (매개 변수로 전달받아 사용 가능)

 

request 클라이언트의 요청 정보 저장 (GET, POST 방식으로 요청, HTTP 요청 헤더 읽기)
ex) <%= request.getParameter("jsp");%>
response 클라이언트의 요청에 대한 응답을 웹 브라우저로 보냄 (redirect, HTTP 응답 헤더 추가)
ex) <%response.setHeader("myName", "jsp");%>
out JSP 페이지에서 웹 브라우저에 출력할 내용을 담는 출력 스트림 (버퍼를 사용)
ex) <%out.prinf("버퍼에 저장(출력x)");
              out.clearBuffer(); %>
session 웹 브라우저 정보를 유지하기 위한 세션 정보 저장
application 웹 애플리케이션에 대한 설정값(관련 컨텍스트 정보) 저장 (하나만 생성됨)
pageContext JSP 페이지에 대한 정보 저장 (page 영역을 사용하기 위해 할당 받게되는 객체)
page JSP 페이지를 구현한 자바 클래스의 인스턴스
config JSP 페이지에 대한 설정 정보 저장
exception 예외가 발생한 경우 처리를 위해 사용

 

* web.xml : 웹 애플리케이션에 대한 여러 설정을 저장하는 곳 (배포 서술자)

 

* 내장 객체의 영역 : 페이지 단위인 JSP에서 영역을 통해 내장 객체에 저장된 속성값(변수 등)을 공유

page 영역 동일한 페이지에서만 공유, 페이지를 벗어나면 소멸 (pageContext.set())
request 영역 하나의 요청에 의해 호출된 페이지와 포워드된 페이지까지 공유 (reqeust.set())
, 새로운 페이지 요청(이동)시 소멸됨
session 영역 클라이언트가 처음 접속한 후 웹 브라우저를 닫을때까지 공유 (session.set())
, 웹 브라우저를 다시 실행 시 새로운 session  객체가 만들어짐
application 영역 한 번 저장되면 웹 애플리케이션이 종료될 때까지 공유 (application.set())
,웹 서버를 시작할 때 만들어 지기 때문에 웹 브라우저를 재실행 해도 삭제되지 않는다.
범위의 크기 : application > session > request > page
void setAttribute(속성명, 저장값) 각 영역에 속성 저장 (값 타입 : Object)
Object getAttribute(속성값) 영역에 저장된 속성값을 얻어옴 (원래 타입으로 형변환 후 사용)
void removeAttribute(속성명) 영역에 저장된 속성을 삭제

 


 

[ 참고 서적 (Must Have 성낙현의 JSP 자바 웹 프로그래밍, 성낙현) https://www.yes24.com/Product/Goods/105016218 ]