학습(구)/JSP

화면 모듈화와 소스 모듈화

잉아당 2020. 9. 9. 23:53
728x90

화면 모듈화

여러 화면에서 공통적으로 상,하단 등 동일하게 보여주는 화면 모습들에 대해 각 페이지 마다 동일한 코드를 작성하는 것은 중복 코딩이 됩니다.

그러므로 <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