[JSP] JSP의 내장객체의 영역

Geehyun(장지현)·2024년 3월 10일

JSP

목록 보기
3/7
post-thumbnail

내장 객체의 영역

각 내장객체는 저장된 속성값을 공유할 수 있는 영역이 지정되어있습니다.

  • page 영역
    동일한 페이지 내에서만 속성을 공유합니다. 해당 페이지 벗어날 시 page에 저장된 속성 공유 불가
    실제 사용시는 pageContext 객체를 이용합니다.

  • request 영역
    기본적으로, 요청한 페이지와 요청받은 페이지끼리만 속성을 공유하지만,
    getRequestDispatcher 을 이용해 화면만 이동되고 URL은그대로 유지된채
    요청&응답을 전달받은 페이지까지도 공유 가능합니다.

    요청 페이지와 요청 받은 페이지 외 다른 페이지로 이동 시 request에 저장된 속성 공유 불가

  • session 영역
    클라이언트가 처음 접속한 후 웹 브라우저를 닫을 때 까지 속성을 공유합니다.
    웹 브라우저는 브라우저 내 탭(창) 하나하나가 별도의 프로세스지만,
    웹 브라우저 내 알고리즘에 의해 동일한 브라우저 내 모든 탭(창)은 세션을 공유합니다.
    * 프로세스 : 메모리에 올라가 실행되고 있는 프로그램

    웹 브라우저 닫기 전까지 해당 웹 서비스 내 모든 페이지에서 session에 저장된 속성 공유 가능.

  • application 영역
    한 번 속성이 저장되면 웹 어플리케이션이 종료될 때까지 application에 저장된 속성이 유지됩니다. (웹 브라우저 종료가 아니라 웹 애플리케이션 자체의 종료를 의미하기 때문에 웹브라우저를 닫고 다시 들어와도 속성은 유지됩니다.)

    application > session > request > page 순으로 영역의 큽니다.
    어플리케이션 내 구조에 따라 더 큰 영역이 더 작은 영역을 하나 이상 포함할 수 있습니다.

속성 관련 공통 주요 메서드

사용법

// 작성법
영역명.메서드명();

// 사용예시
<% 
pageContext.setAttibute("name1", "값1 입니다.");
request.setAttribute("name2", "값2 입니다.");
session.setAttribute("name3", "값3 입니다.");
application.setAttribute("name4", "값4 입니다.");
%>

주요 메서드

리턴타입메서드명설명
voidsetAttribute(String name, Object value)- 해당 영역에 입력한 name을 속성명으로, value를 값으로 속성을 저장합니다.
- value(값)의 경우 Object 타입으로 저장되기 때문에 어떤 타입도 저장할 수 있습니다.(단 실제 사용시 캐스팅 필요)
ObjectgetAttribute(String name)- 해당 영역의 속성 중 name을 속성명으로 갖는 속성의 값을 가져옵니다.
- 리턴 값이 Object 이므로 실제 사용 시 캐스팅이 필요합니다.
voidremoveAttribute(String name)- 해당 영역의 속성 중 name을 속성명으로 갖는 속성을 삭제합니다.
- 입력한 속성명이 존재하지 않을 시에도 에러가 발생하지는 않습니다.

참고

성낙현의 JSP 자바 웹 프로그래밍 2판 - 성낙현 지음
위 책을 공부하며 작성하고 있습니다!

profile
블로그 이전 했습니다. 아래 블로그 아이콘(🏠) 눌러서 놀러오세요

0개의 댓글