wrkbrs

JSP 페이지 모듈화 <jsp:include> 액션태그 본문

JSP

JSP 페이지 모듈화 <jsp:include> 액션태그

zcarc 2018. 10. 29. 18:46







웹사이트를 구성하는 페이지들은 동일한 상단, 하단, 좌측 메뉴를 갖는 경우가 많이 있다. 이렇게 웹사이트가 구성되어 있다면 <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파일)



 TEST_INCLUDE.WAR



출처: http://all-record.tistory.com/106 [세상의 모든 기록]