2013/09/19 - [Java/Java EE] - JSP 디렉티브(Directive) - include
2013/09/19 - [Java/Java EE] - JSP 액션 태그
1. <jsp:include> 액션 태그
- 지정한 페이지를 태그가 위치한 부분에 포함시킬때 사용한다.
- 태그가 있는 부분에서 흐름이 실제 페이지로 이동되었다가 돌아온다.
- 결과적으로 포함할 JSP 페이지의 실행 결과를 현재 위치에 포함시킨다.
2. <jsp:include> 액션 태그 사용법
- <jsp:include page="포함할페이지" flush="true"/>
- page 속성 : 포함할 JSP 페이지
- flush 속성 : 지정한 JSP 페이지를 실행하기 전에 출력 버퍼를 플러시 여부 설정
* flush
- 플러시는 액션 태그가 실행하게 되면 이전에 출력 버퍼의 내용이 웹 브라우저에 전달된다.
- HTTP 헤더 정보도 함께 전달되기 때문에 이후로 헤더 정보를 추가해도 반영되지 않는다.
<!-- includeMain.jsp --> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>include main</title> </head> <body> <p>main 에서 생성</p>
<jsp:include page="includeSub.jsp" flush="false"/> <p>include 이후 내용</p>
</body> </html> <!-- 실행결과 main 에서 생성 sub 에서 생성 include 이후 내용 -->
<!-- includeSub.jsp --> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <p>sub 에서 생성</p>
<!-- 페이지 소스보기로 확인한 결과 --> <!-- includeMain.jsp --> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>include main</title> </head> <body> <p>main 에서 생성</p> <!-- includeSub.jsp --> <p>sub 에서 생성</p> <p>include 이후 내용</p> </body> </html> <!-- 실행결과 main 에서 생성 sub 에서 생성 include 이후 내용 -->
3. <jsp:include> 액션 태그를 이용한 중복 영역 처리
- 웹 페이지는 일반적으로 상단, 좌측, 우측, 중앙, 하단 등의 요소로 구성되어있다.
- 이 요소들중에서는 모든 페이지에서 고정적인 것들도 있고 변경되는 부분이 있다.
- 공통되는 부분의 유지보수 및 개발 효율 문제를 <jsp:include>를 통해 최소화 할 수 있다.
4. <jsp:param> 포함될 페이지에 파라미터 추가
- <jap:include>를 이용해서 포함할 JSP 페이지에 파라미터를 추가할 수 있다.
- <jsp:include>의 자식 태그로 추가되며, 파라미터의 이름과 값을 직접 또는 표현식으로 지정한다.
- 이미 동일한 이름의 파라미터가 존재할 경우, 기존 파라미터 값을 유지하면서 새로운 값을 추가한다.
- 추가되는 파라미터는 <jsp:include> 를 통해 포함되는 페이지에서만 유효하다.
- setCharacterEncoding() 메서드를 통해서 캐릭터 셋을 지정 한다.
<!-- infoMain.jsp --> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Info</title> </head> <body> <table border="1" width="100%" cellpadding="0" cellspacing="0"> <tr> <th>회원번호</th> <td>XXXXXX</td> </tr> <tr> <th>등록비</th> <td>70,000원</td> </tr> </table> <jsp:include page="infoSub.jsp" flush="false"> <jsp:param value="3" name="month"/> </jsp:include> </body> </html>
<!-- 실행 결과 -->
<!-- infoSub.jsp --> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% request.setCharacterEncoding(); String month = request.getParameter("month"); if (month != null) { %> <br> <table border="1" width="100%" cellpadding="0" cellspacing="0"> <tr> <th>기간</th> <td><%=month%></td> </tr> <tr> <th>종류</th> <td> <% if (month.equals("3")) { out.print("3개월 헬스"); } else if (month.equals("6")) { out.print("6개월 헬스"); } %> </td> </tr> </table> <% } %>
<!-- 페이지 소스보기로 확인한 결과 --> <!-- infoMain.jsp --> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Info</title> </head> <body> <table border="1" width="100%" cellpadding="0" cellspacing="0"> <tr> <th>회원번호</th> <td>XXXXXX</td> </tr> <tr> <th>등록비</th> <td>70,000원</td> </tr> </table> <!-- infoSub.jsp --> <br> <table border="1" width="100%" cellpadding="0" cellspacing="0"> <tr> <th>기간</th> <td>3</td> </tr> <tr> <th>종류</th> <td> 3개월 헬스 </td> </tr> </table> </body> </html>
'Java > Java EE' 카테고리의 다른 글
JSP 액션 태그 <jsp:include> 와 디렉티브 include 비교 (0) | 2013.09.19 |
---|---|
JSP 디렉티브(Directive)(지시자) - include (0) | 2013.09.19 |
JSP 기본(내장) 객체의 속성(Attribute) (0) | 2013.09.19 |
JSP 기본(내장) 객체 영역과 속성 (0) | 2013.09.17 |
JSP 기본(내장) 객체 - out, pageContext, application, page (0) | 2013.09.16 |