Spring

[JSP] Implicit Object, Directive, Action Tag

lala9663 2022. 10. 20. 19:29

Implicit Object

  • 프로그래밍 단순화시키기 위해 별다른 선언 없이 내장된 객체
  • JSP 컨테이너(contalina) 제공
  • 객체 종류
    Servlet에서 내장 객체 확인
  • request
    • 사용자 요청에 대한 정보 처리하기 위한 객체
  • response
    • 서버의 응답에 대한 정보 처리하기 위한 객체
    • HTTP 프로토콜의 단점을 보안하기 위해 쿠키나 세션을 사용 이후 학습
      • cookie: 사용자단 저장 정보
      • session: 서버단 저장 정보
  • out
    • JSP 페이지에 출력할 내용을 가지고 있는 출력 스트림 객체
    • out.print(), out.println()
  • exception
    • JSP 페이지에서 예외가 발생한 경우 예외 처리 객체
  • application
    • 웹 어플리케이션 Context의 정보 가지고 있는 객체
  • session
    • 하나의 웹 브라우저의 정보를 유지하기 위해 세션 정보 저장하는 객체
  • pageContext
    • JSP 페이지에 대한 정보를 저장하고 있는 객체
  • page
    • JSP 페이지를 구현한 자바 클래스 객체
    • this를 통해 접근 가능
  • config
    • JSP 페이지에 대한 설정 정보를 저장하고 있는 객체
  • 객체 영역
    • page 영역
      • 한 번의 클라이언트 요청이 오면, 하나의 JSP 페이지가 응답
      • page 영역은 이 때 하나의 JSP 페이지 내에서만 객체를 공유하는 영역 의미 ( JSP only )
        • JSP 파일에는 pageContext가 내장됨
        • 이 객체는 page 영역에서만 유효함
        • JSP 파일에 <% %> 안에 변수를 사용하면 이 변수는 해당 JSP 파일 내에서만 유효한데, page 스코프에 정의된 객체이기 때문입니다.
    • request 영역
      • 요청을 받아서 응답하기까지 객체가 유효한 영역
      • Servlet에서 forward 또는 include를 사용하면 request 요청 객체가 공유되어서 request 영역
      • request 객체 사용 예시
        • Servlet에서는 reqeust.setAttribute("이름", 객체); 로 전달하고
        • JSP에서는 Obejct ob j = request.getAttribute("이름"); 으로 받음
    • session 영역
      • 하나의 브라우저 당 1개의 session 객체가 생성딤
      • 즉, 같은 브라우저 내에서 요청되는 페이지들은 같은 객체를 공유하게 되는데, 이를 세션 영역이라고 함
      • 세션이 종료되면 객체 반환
      • requset.getSession() 메서드를 호출하여 세션 영역의 객체를 얻음
    • application 영역
      • 하나의 애플리케이션 당 1개의 application 객체가 생성
      • 즉, 같은 애플리케이션 내에서 요청되는 페이지들은 같은 객체를 공유하게 되는데 이를 애플리케이션 영역이라고 함
      • 애플리케이션이 종료되면 객체는 반환
      • request.getServletContext() 메서드를 호출하여, 애플리케이션 영역의 객체를 얻을 수 있음


        scope 범위 - page < request < session < application

Directive

  • 지시자
  • JSP 페이지가 실행될 때 필요한 정보를 JSP 컨테이너에게 알리는 역할
  • 종류
    • page
      • <%@page...%>
      • 페이지 정보를 알려줌
    • include
      • <%@include file="…"%>
      • 여러 jsp 페이지에서 공통적으로 포함 내용이 있으면 별도 파일 저장하고 포함
      • 소스코드 자체가 포함되기 때문에 변수 중복 선언 불가함

Action Tag

  • 서버나 클라이언트에게 어떤 행동을 하도록 명령하는 태그
  • 기능
    • JSP 페이지에서 페이지와 페이지 사이를 제어
    • 다른 페이지의 실행결과 내용을 현재 페이지에 포함
    • 자바 빈즈 (JavaBeans) 등의 다양한 기능 제공

Application

  • 각 웹 애플리케이션 당 오직 하나의 객체만 생성
  • 웹 애플리케이션 전체 영역에서 자원을 공유해야할 때 주로 사용
  • application 내장 객체는 웹 애플리케이션 설정 정보를 갖는 context 와 관련이 있는 객체로
  • application 객체는 웹 애플리케이션 실행되는 서버의 설정 정보 및 자원에 대한 정보를 얻어내거나 애플리케이션 실행되고 있는 동안에 발생할 수 있는 이벤트 로그 정보와 관련된 기능들을 제공함

ex) 방문자 수 통계, 이벤트 로그 기록