화면 모듈화
여러 화면에서 공통적으로 상,하단 등 동일하게 보여주는 화면 모습들에 대해 각 페이지 마다 동일한 코드를 작성하는 것은 중복 코딩이 됩니다.
그러므로 <jsp:include> 액션태그를 사용하여 페이지를 따로 작성한후 삽입하는 방식으로 재사용성을 높이고 중복 코딩을 줄입니다.
<%@ page contentType = "text/html; charset=utf-8" %>
<html>
<head><title>Layout을 사용한 화면 구성</title></head>
<body>
<table width="700" border="1" cellpadding="0" cellspacing="0">
<tr>
<td colspan="2">
<jsp:include page="/layout/top.jsp" flush="false" />
</td>
</tr>
<tr>
<td width="100" valign="top">
<jsp:include page="/layout/left.jsp" flush="false" />
</td>
<td width="600" valign="top" align="center">
<!-- 메인 창의 JSP가 위치합니다. -->
<br/><br/><br/>
이 창은 메인 창입니다.<br/>
주작업은 이 창에서 수행합니다. <br/><br/><br/><br/>
</td>
</tr>
<tr>
<td colspan="2">
<jsp:include page="/layout/bottom.jsp" flush="false" />
</td>
</tr>
</body>
</html>
<jsp:include> 액션태그는 페이지 수행 단계에서 페이지를 연결해줘 페이지의 결과로 이어집니다.
또한 <jsp:param>액션 태그를 이용하여 정보 전달을 수행할 수 있으며 이때 인코딩에 주의해야합니다.
소스 모듈화
소스 중복 코딩 방지를 위해 반복되는 코드를 모듈화 하고 그 코드가 필요한 지점에서 <%@include%> 디렉티브를 사용하거나 web.xml의 설정에 의해 자동으로 포함시키도록할 수 있습니다.
모듈화 되는 페이지의 확장자는 .jspf이며 file속성을 사용하여 지정하므로 소스 파일 단계에서 모듈화가 수행됩니다.
즉 모듈화의 수행은 .jsp가 .java로 변환되기 전에 수행됩니다.
그러므로 .jsp가 .java로 변환되어질 때 합쳐지며 합쳐진 .java가 .class로 번역되어 수행이됩니다.
.jspf파일에서 사용되는 디렉티브는 페이지에 복사되지 않고 내용만 사용됩니다.
일반적으로 상 하단에 필요한 내용들일 경우 <%@include%>디렉티브를 사용하지 않고 web.xml을 사용하여 등록합니다.
web.xml에서 <include-prelude>태그는 상단에 포함시키고 <include-coda>는 하단에 포함시킵니다.
<jsp-config> <jsp-property-group>
<url-pattern>/include/*</url-pattern>
<include-prelude>/included/top.jspf</include-prelude>
<include-coda>/included/bottom.jspf</include-coda>
</jsp-property-group> </jsp-config>
<url-pattern>으로 지정한 경로에 대해서 적용 시키는 코드입니다.
또한 <jsp-property-group>의 경우에 한페이지에 여러개의 jspf를 적용시킬 수도 있고 하나의 jspf를 여러 페이지에 적용할 수 있습니다.
'학습(구) > JSP' 카테고리의 다른 글
오류 처리 (0) | 2020.09.10 |
---|---|
로그인(쿠키와 세션) (0) | 2020.09.10 |
페이지 사이의 정보공유 (0) | 2020.09.09 |
기능 모듈화 (forward액션태그와 redirect) (0) | 2020.09.09 |
Java Bean (0) | 2020.09.07 |