wrkbrs
JSP 페이지 모듈화 <jsp:include> 액션태그 본문
웹사이트를 구성하는 페이지들은 동일한 상단, 하단, 좌측 메뉴를 갖는 경우가 많이 있다. 이렇게 웹사이트가 구성되어 있다면 <jsp:include> 액션 태그를 사용해서 화면을 모듈화시켜 코드가 중복되는 것을 방지할 수 있다.
<jsp:include> 액션 태그 사용법
■ 문법
1 2 3 | <jsp:include page="포함할 페이지" flush="false"/> | cs |
■ 태그의 속성
page : 포함할 JSP 페이지
flush : 지정한 JSP 페이지를 실행하기 전에 출력 버퍼를 플러시 할지의 여부를 지정, false면 출력 버퍼를 플러시 하지 않는다.
<jsp:include> 액션 태그의 처리과정
①. main.jsp가 웹브라우저의 요청을 받는다.
②. 출력내용 1을 출력 버퍼에 저장한다.
③. <jsp:include>가 실행되면 요청 흐름을 sub.jsp로 이동시킨다.
④. sub.jsp의 출력내용을 출력 버퍼에 저장한다.
⑤. sub.jsp의 실행이 끝나면 다시 main.jsp로 돌아온다.
⑥. main.jsp의 출력내용 2를 출력 버퍼에 저장한다.
⑦. 출력 버퍼의 내용을 웹브라우저로 전송한다.
<jsp:include> 액션 태그로 중복영역 처리
보통 웹 페이지의 경우 상단, 하단, 좌측의 고정적이다. 대부분 가운데의 내용 부분만 변경된다. 그렇기에 상단, 하단 부분을 <jsp:include>를 사용하여 포함시키면 중복된 부분을 없앨 수 있다.
<jsp:include> 액션 태그 예제
예제는 총 4개의 JSP로 구성되어 있다. 화면 전체의 레이아웃을 잡아줄 layout.jsp와 상,하단 메뉴인 top.jsp, bottom.jsp 그리고 내용 부분인 content.jsp 이다.
여기서 내용 부분인 content.jsp 를 수정해도 전체 화면에는 아무런 영향을 미치지 않는다. → 유지 보수에 유리
■ layout.jsp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | <%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <html> <head> <title>layout</title> </head> <body> <table width="400" border="1" cellpadding="0" cellspacing="0"> <tr> <td> <jsp:include page="top.jsp" flush="false"/> </td> </tr> <tr> <td> <jsp:include page="content.jsp" flush="false"/> </td> </tr> <tr> <td> <jsp:include page="bottom.jsp" flush="false"/> </td> </tr> </table> </body> </html> | cs |
■ top.jsp
1 2 3 4 5 6 7 8 9 10 11 12 | <%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <html> <head> <title>top</title> </head> <body> 상단메뉴 : <a href="#">HOME</a> <a href="#">INFO</a> </body> </html> | cs |
■ bottom.jsp
1 2 3 4 5 6 7 8 9 10 11 12 13 | <%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <html> <head> <title>bottom</title> </head> <body> 하단메뉴 : <a href="#">도움말</a> <a href="#">약관</a> <a href="#">사이트맵</a> </body> </html> | cs |
■ content.jsp
1 2 3 4 5 6 7 8 9 10 11 12 | <%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <html> <head> <title>content</title> </head> <body> <br><br> 내용 페이지 <br><br> </body> </html> | cs |
소스코드 다운로드 (war파일)
출처: http://all-record.tistory.com/106 [세상의 모든 기록]
'JSP' 카테고리의 다른 글
JSTL [Core 라이브러리] : forEach -배열출력- [items] (0) | 2018.10.30 |
---|---|
[JSP] JSP 내장 기본 객체의 영역(scope) (0) | 2018.10.30 |
파일 업로드 라이브러리 (0) | 2018.10.29 |
자카르타 DBCP API를 이용한 커넥션 풀 사용 (0) | 2018.10.27 |
[JSP / Servlet] 데이터베이스 커넥션 풀(DBCP) (0) | 2018.10.27 |