04 - [JSP 프로그래밍] 액션 태그

김태성·2022년 10월 18일
0

JSP 프로그래밍

목록 보기
4/4

본 게시글은 "JSP 웹 프로그래밍"을 학습하며, 내용 요약 또는 몰랐던 부분을 정리하는 글 입니다.

액션 태그

액션 태그

  • 서버나 클라이언트에게 어떤 행동을 하도록 명령하는 태그
  • JSP 페이지에서 페이지와 페이지 사이 제어
  • 다른 페이지의 실행 결과 내용을 현재 페이지에 포함
  • 자바빈즈(JavaBeans) 등의 다양한 기능 제공
    • 자바빈즈(JavaBeans): 자바로 작성된 소프트웨어 컴포넌트
  • <%...%>와 같은 스크립트 태그의 형식을 따르지 않고, XML 형식 <jsp: .../>을 사용한다.

forward 액션태그: <jsp:forward .../>

  • 다른 페이지로의 이동과 같은 페이지 흐름을 제어한다.
  • JSP 컨테이너는 현재 JSP 페이지에서 forward 액션 태그를 만나면 그 전까지 출력 버퍼에 저장되어 있던 내용을 모두 삭제하고, forward 액션 태그에 설정된 페이지로 프로그램의 제어가 이동
  • page 속성 값: 이동할 페이지의 외부 파일명(같은 디렉토리면 파일명만, 다르면 전체 URL 또는 상대 경로)

ex) forward 액션 태그 사용 예제

"이 파일은 first.jsp입니다"는 출력되지 않은 것을 볼 수 있다. (버퍼를 비우기 때문)

tip) forword액션 태그 사용 시 주의점

액션 태그를 사용하는 이유: 자바 코드의 삽입을 되도록 최소화하여 유지 보수를 효율적으로 하는 것이 목적이다.

include 액션 태그: <jsp:include .../> 외부 페이지의 내용을 포함하거나 페이지를 모듈화한다.

  • include 디렉티브 태그처럼 현재 JSP 페이지의 특정 영역에 외부 파일의 내용을 포함하는 태그
  • 현재 JSP 페이지에 포함할 수 있는 외부 파일은 HTML, JSP, 서블릿 페이지 등
  • page 속성: 현재 JSP 페이지 내에 포함할 내용을 가진 외부 파일명
  • flush 속성(default: false): 설정한 외부 파일로 제어가 이동할 때, 출력 버퍼에 저장한 결과를 처리(true면 제어가 이동할 때 모두 비운다. -> 삭제가 아닌 비우는 것)
    • 헤더정보도 같이 전송되기 때문에 웹 브라우저에 전송되고 나면 헤더 정보가 반영되지 않아 문제가 될 수 있다.
  • include 액션태그가 forward 액션태그와 다른 점은 포함된 외부 파일이 실행된 후 현재 JSP 페이지로 제어를 반환한다는 것

    제어권: first.jsp -> second.jsp -> first.jsp
    ("Java Server Page" 출력 위치를 보면 이해가 쉽다.)

tip) include 액션 태그 vs include 디렉티브 태그

  • include 액션 태그는 포함될 페이지의 결과가 원래 페이지의 결과와 합쳐져서 보인다.
  • include 디렉티브 태그는 포함될 파일의 소스코드를 복사하여 붙여넣기 함. 조각코드 삽입개념. 단순하게 다른 페이지의 내용이 텍스트로 포함된다.

param 액션 태그: <jsp:param .../> <jsp:forward>, <jsp:include>, <jsp:plugin> 태그에 인자를 추가한다.

  • 현재 JSP 페이지에서 다른 페이지에 정보를 전달하는 태그
  • 이 태그는 단독으로 사용되지 못하며 <jsp:forward>나 <jsp:include> 태그의 내부에 사용
  • 다른 페이지에 여러 개의 정보를 전송해야 할 때는 다중의 param 액션 태그 사용

그 외 태그

  • useBean: <jsp:useBean .../> JSP 페이지에 자바빈즈를 설정한다.
  • setProperty: <jsp:setProperty .../> 자바빈즈의 프로퍼티 값을 설정한다.
  • getProperty: <jsp:getProperty .../> 자바빈즈의 프로퍼티 값을 얻어온다.
  • plugin: <jsp:plugin .../> 웹 브라우저에 자바 애플릿을 실행한다. 자바 플러그인에 대한 OBJECT 또는 EMBED 태그를 만드는 브라우저별 코드를 생성한다.
  • element: <jsp:element .../> 동적 XML요소를 설정한다.
  • attribute: <jsp:attribute .../> 동적으로 정의된 XML 요소의 속성을 설정한다.
  • body: <jsp:body .../> 동적으로 정의된 XML 요소의 몸체를 설정한다.
  • text: <jsp:text .../> JSP 페이지 및 문서에서 템플릿 텍스트를 작성한다.

profile
@flip_404

0개의 댓글