JAVA/JSP
JSP | include 액션 태그
pathas
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 페이지에 값을 전달할 때 사용
기본 형식
|
1
2
3
4
|
<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
입력을 받는 페이지
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<%@ 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 액션 태그를 사용한 페이지
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
<%@ 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에 포함될 페이지
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<%@ 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만 표시되면서 다른 페이지를 처리하기 때문에
하나의 출력 페이지에서 여러가지 작업을 처리할 수 있겠습니다.