본문 바로가기
Web과 프로그래밍 언어/JSP

[JSP] include 사용법 (head, nav, footer 등 분리해 관리하기)

by cosmicgy 2022. 9. 13.

 

JSP에선 현재의 JSP 파일에 다른 JSP 파일을 포함시키는 것이 가능하다

 

headr, footer, nav bar (상태바, 사이드바 등) 등의 파일을 따로 만들고 메인 파일에 불러와 붙일 때 사용한다 

 

* Include의 2가지 방식
1. include directive (지시어)
2. include action (액션)

- 공통점 : 두 가지 모두 경로의 파일을 불러온다 
- 차이점 : 지시어는 해당 소스의 파일을 포함 시킨 후 컴파일 실시, 실행
                액션은 실행 시점에서 경로의 파일을 수행한 결과를 포함 시켜 줌 

 

1. include directive (지시어) 사용하기 

<%@ include file="가져오고자 하는 파일 경로" %>

 

예시)

-include_main.jsp 

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>include 실습</title>
</head>

<body>
<header> <%@ include file="header.jsp" %> </header>
<main> 안녕하세요! main 페이지 입니다. </main>
<aside> <%@ include file="nav.jsp" %> </aside>
<footer> <%@ include file="footer.jsp" %> </footer>
</body>

</html>
-header.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>

<body> <h1>include 실습 헤더입니다.(header)</h1></body>

</html>
-nav.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>

<body>
<ul>
    <li>메인 페이지</li>
    <li>공지사항</li>
    <li>자유게시판</li>
    <li>Q&A</li>
    <li>...</li>
</ul>
</body>

</html>
-footer.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>

<body>
<h1>include 실습 푸터입니다.(footer)</h1>
</body>

</html>

 

결과)

 

2-1. include action( 액션) 사용하기 

<jsp:include page="가져오고자 하는 파일 경로" />

 

2-2. include action( 액션) 사용하기 : jsp param 태그를 활용하여 파라메터 값 함께 전달

예시)

- main.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>

<body>
<h2>param_header 호출 전</h2>
<% String name = "kim"; String age = "20"; %>
<%=name %> <br>
<%=age %> <br>
<jsp:include page="param_header.jsp">
<jsp:param name="name" value="choi"/>
<jsp:param name="age" value="39"/>
</jsp:include>
<h2>param_header 호출 후</h2>
<% String name2 = "kim"; String age2 = "20"; %>
<%=name2 %> <br>
<%=age2 %> <br>
</body>

</html>
- param_header. jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>

<body>
<h2>param_header 내용 출력</h2>  
<%  
String name = request.getParameter("name");  
String age = request.getParameter("age");  
%>  
<%=name %> <br />  
<%=age %> <br />  
</body>

</html>

결과)