-
JSP | include 액션 태그JAVA/JSP 2020. 2. 19. 17:27
include 액션 태그
JSP 페이지의 모듈화에 사용되는 액션 태그
- 다른 페이지의 처리 결과만을 현재 페이지에 포함
- HTML, JSP, Servlet 페이지 모두 포함 가능
- 템플릿 페이지 작성시 사용(디자인과 관련)
↔ include 디렉티브는 조각 코드 삽입 시 사용(변수, 메소드 선언) - 동적으로 변경된 내용을 특정한 위치에 삽입
- 전송 데이터에 따라 출력 결과가 달라지는 동적 디자인을 하는 경우 사용
include 기본 형식
<jsp:include page="포함 페이지" flush="boolean"/>
page 속성
- 속성 값은 현재 페이지에 결과가 포함될 페이지명
- 생략 불가능한 필수 속성
- 페이지명은 상대 경로 또는 절대 경로 사용
- 표현식 사용 가능
↔ include 디렉티브는 표현식 사용 불가
flush 속성
- JSP 페이지는 출력할 내용을 버퍼(8kb)에 저장하는데
포함될 페이지로 제어가 이동할 때 버퍼의 처리 방식을 속성 값으로 지정 - true: 현재 페이지가 버퍼에 저장한 내용을 웹 브라우저에 출력하고 버퍼를 비움
- false: 결과를 합쳐서 출력하기 전까지 버퍼에 출력 내용을 저장
include 액션 태그 처리 과정
- 웹 브라우저가 a.jsp 페이지를 서버에 요청
- 서버가 a.jsp 처리, 페이지 내부의 출력 내용을 버퍼에 저장하는 등의 작업을 함
- <jsp:include page="b.jsp" flush="false"/>
액션 태그를 만나면 작업을 멈추고 b.jsp로 프로그램 제어를 이동시킴 - b.jsp 페이지 처리, 해당 페이지 내의 출력 내용을 출력 버퍼에 저장
- b.jsp 페이지의 처리가 끝나면 다시 a.jsp 페이지로 프로그램 제어가 이동
이동 위치는 include 액션 태그의 다음 행 - a.jsp 페이지의 나머지 부분을 처리, 출력 내용을 버퍼에 저장
- 출력 버퍼의 내용을 웹 브라우저로 응답
※ include 액션 태그는 request 내장 객체를 공유하기 때문에
a.jsp와 b.jsp는 동일한 request 객체를 사용하게 됨
param 액션 태그
include 액션 태그의 바디에 사용하는 액션 태그
포함되는 JSP 페이지에 값을 전달할 때 사용
기본 형식
1234<jsp:include ~><jsp:param name="파라미터 이름" value="파라미터 값"/><jsp:param name="파라미터 이름" value="<%=val%>"/></jsp:include>http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter- name 속성: 포함되는 JSP 페이지에 전달할 파라미터 이름 표시
- value 속성: 전달할 파라미터 값 지정, value 값으로 표현식 사용 가능
- 데이터를 전달 받을 때는 request.getParameter("PARAM_NAME") 를 사용
예제
form.jsp에 입력한 데이터를 include.jsp에서 전달 받아서
sub.jsp에서 처리한 후 결과를 include.jsp에 포함해서 출력하는 예제
form.jsp
입력을 받는 페이지
12345678910111213141516<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPE html><html><head><meta charset="UTF-8"><title>Insert title here</title></head><body><form action="include.jsp" method="post">이름: <input type="text" name="name" /><input type="submit" value="전송" /></form></body></html>http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
include.jsp
include 액션 태그를 사용한 페이지
1234567891011121314151617181920212223<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPE html><html><head><meta charset="UTF-8"><title>Insert title here</title><!-- 한글이 깨지지 않도록 처리 --><%request.setCharacterEncoding("utf-8");%></head><body><h2>포함을 하는 페이지</h2><!-- include 액션 태그, sub.jsp에서 실행한 결과 삽입 --><jsp:include page="sub.jsp" flush="false" /><br/>나머지는 sub.jsp가 알아서 해줄거랍니다.</body></html>http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
sub.jsp
include 액션 태그에 의해 include.jsp에 포함될 페이지
123456789101112131415161718<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPE html><html><head><meta charset="UTF-8"><title>Insert title here</title></head><body><!-- 전송된 데이터를 변수에 저장 --><%String name = request.getParameter("name");%><!-- 출력 --><b><%=name%>님 잘 오셨습니다.</b></body></html>http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
결과
※ URL에 include.jsp의 주소가 출력됨
다른 페이지에서의 실행 결과를 현재 페이지에 포함하는 include 액션 태그에 대해 알아보았습니다.
include 액션 태그의 경우 사용자로부터 입력 받은 값을 다른 페이지에서 처리한 후
그 결과만 현재 페이지에 출력하기 때문에 데이터에 따라 결과가 달라지는 동적 디자인에 사용된다고 합니다.
또한 include 액션 태그의 URL만 표시되면서 다른 페이지를 처리하기 때문에
하나의 출력 페이지에서 여러가지 작업을 처리할 수 있겠습니다.'JAVA > JSP' 카테고리의 다른 글
JSP | Template Page (0) 2020.02.20 JSP | forward 액션 태그 (1) 2020.02.19 JSP | Action Tag 액션 태그 개요 (0) 2020.02.19 JSP | Out 내장 객체 (0) 2020.02.19 JSP | Response 내장 객체 (0) 2020.02.19