티스토리 뷰

페이지 모듈화와 요청 흐름 제어

 

<jsp:include>

-서버측 include가 아닌 클라이언트 측의 include라고 생각하자.

-출력 결과만 (html코드)을 include한다.

-include 되는 페이지와 변수를 같이 사용할 수 없다.

-JSP의 실행 결과코드포함할 때 사용하는  액션 태그와 include디렉티브에 대해 알아본다.

ex) 중복되는 헤더나 푸터등 영역에서 사용하면 좋다.

 

 

이 두 기능을 사용하면 중복된 코드 없이 여러 JSP코드에 공통된 구성 요소를 만들 수 있다.

 

액션태그의 처리 과정

①. main.jsp가 웹브라우저의 요청을 받는다.

②. 출력내용 1을 출력 버퍼에 저장한다.

③. <jsp:include>가 실행되면 요청 흐름을 sub.jsp로 이동시킨다.

④. sub.jsp의 출력내용을 출력 버퍼에 저장한다.

⑤. sub.jsp의 실행이 끝나면 다시 main.jsp로 돌아온다.

⑥. main.jsp의 출력내용 2를 출력 버퍼에 저장한다.

. 출력 버퍼의 내용을 웹브라우저로 전송한다.

 

<jsp:include> 액션 태그로 중복영역 처리

 

보통 웹 페이지의 경우 상단, 하단, 좌측의 고정적이다. 대부분 가운데의 내용 부분만 변경된다. 그렇기에 상단, 하단 부분을 <jsp:include>를 사용하여 포함시키면 중복된 부분을 없앨 수 있다.

예제는 총 4개의 JSP로 구성되어 있다. 화면 전체의 레이아웃을 잡아줄 layout.jsp와 상,하단 메뉴인 top.jsp, bottom.jsp 그리고 내용 부분인 content.jsp 이다. 

 

여기서 내용 부분인 content.jsp 를 수정해도 전체 화면에는 아무런 영향을 미치지 않는다.  유지 보수에 유리

 

■ layout.jsp

<%@ 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>


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

■ top.jsp

<%@ 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>


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

 

■ bottom.jsp

<%@ 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>


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

 

■ content.jsp

<%@ 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>


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

 

 

<%@ include % >

-서버측 include라고 생각하면 된다 즉, 소스 실행전에 include가 된다.

-소스 실행전 포함됨으로 변수를 같이 사용할 수 있다.

-동적으로 페이지를 할당 할 수 없다.

-별도의 파일로 요청 처리 흐름을 이동

-화면 레이아웃 일부분을 모듈화 할 때 주로 사용한다.

 

 

속성

ㆍfile

-포함될 페이지 명시

 

<jsp:forward>

 

-액션 태그를 이용해 다른 JSP로 요청 처리를 전달하는 방법을 알아보자.

 

 

 

'Web(국비) > JSP' 카테고리의 다른 글

[JSP]include디렉티브와 코드 조각 자동 포함 기능  (0) 2019.11.02
<jsp:param>데이터 전달하기  (0) 2019.11.02
setAttribute  (0) 2019.10.30
[Java]onsubmit()이란?  (0) 2019.10.27
[JSP]-onchange란?  (0) 2019.10.27