액션태그1 - forward, include

songB·2022년 3월 15일
0

JSP

목록 보기
9/13

1. 액션태그

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

<jsp: ... />

스크립트 태그 형식이 아닌 xml 형식이다.

2. forward 액션 태그

<jsp:forward page="파일명"/>
혹은
<jsp:forward page="파일명"> </jsp:forward>

다른 페이지로 이동하는 태그로, 컨테이너에서 태그를 만나면 시작 전까지 출력 버퍼에 저장된 내용 삭제하고 프로그램 제어를 해당 페이지로 이동한다. (파일명 경로 주의)

처리 과정

  • 웹 브라우저에서 hello1.jsp 요청
  • jsp 컨테이너는 hello1.jsp 실행
  • hello1.jsp 를 실행하다가 forward를 만나면 출력버퍼에 저장된 내용 삭제 후 hello2.jsp로 이동(포워딩)
  • hello2.jsp 실행
  • JSP 컨테이너는 hello2.jsp 를 실행한 결과를 웹 브라우저에 응답

=> 결국 클라이언트의 화면에는 hello1.jsp는 보이지 않고 hello2.jsp만 보이지만, 주소란에는 처음 요청한 hello1.jsp가 표시된다.

3. include 액션 태그

<jsp:include page="파일명" flush="false"/>

include 디렉티브 태그와 같은 역할을 한다. (파일명 경로 주의)
flush 속성값은 해당 파일로 이동할 때 지금까지 출력 버퍼에 저장한 결과를 처리한다. 기본값 false, true로 설정시 저장된 내용을 웹브라우저에 출력하고 버퍼를 비운다.

forward 태그와 차이점

외부 파일을 포함한다는 점이 비슷하지만, include 액션 태그는 외부 파일이 실행된 후 현재 페이지로 제어를 반환한다.

처리 과정

  • 웹 브라우저에서 hello1.jsp 요청
  • jsp 컨테이너는 hello1.jsp 실행, 출력 내용 출력 버퍼에 저장 후 include를 만나면 hello2.jsp로 이동
  • hello2.jsp 실행, 출력 내용 출력 버퍼에 저장
  • hello2.jsp 처리가 끝나면 hello1.jsp의 include 다음 행으로 이동
  • hello1.jsp의 남은 부분을 처리하고 출력 내용 출력 버퍼에 저장
  • JSP 컨테이너는 출력 버퍼에 저장된 내용을 웹 브라우저에 응답

=> 결국 클라이언트의 화면에는 hello2.jsp 가 포함된 hello1.jsp가 보이고 주소란에는 처음 요청한 hello1.jsp가 표시된다.

include 액션 태그와 디렉티브 태그의 차이점

구분include 액션 태그include 디렉티브 태그
처리 시간요청 시 자원을 포함번역 시 자원을 포함
기능별도의 파일로 요청 처리 흐름을 이동현재 페이지에 삽입
데이터 전달 방법request 기본 내장 객체나 param 액션 태그를 이용하여 파라미터를 전달페이지 내의 변수를 선언한 후 변수에 값을 저장
용도화면 에리아웃의 일부분을 모듈화할 때 주로 사용다수의 JSP 웹 페이지에서 공통으로 사용되는 코드나 저작권과 같은 문장을 포함하는 경우에 사용
기타동적 페이지에 사용정적 페이지에 사용


출처: 쉽게 배우는 JSP 웹 프로그래밍|송미영|한빛아카데미
profile
백송은입니다.

0개의 댓글

관련 채용 정보