반응형
<%@ 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>
<link rel = "stylesheet" href="05style.css">
</head>
<body>
<header> <!-- 상단 부분 -->
<%@ include file= "05top.jsp" %>
<% out.println(a); %>
<%-- top.jsp에 코드를 카피해서 가져와서 실행 <%@ 지시문이라서 강하기 때문에 코드 카피 --%>
</header>
<section> <!-- linear layout과 유사 여러개 사용 가능 -->
<h2> 메인 페이지입니다. </h2>
</section>
<footer> <!-- 하단 부분 -->
<jsp:include page = "05footer.jsp" flush = "false"/>
<%-- 액션태그는 해당 footer.jsp로 가서 실행후 다시 돌아감 main으로 돌아감
main에 선언한 a변수가 있으면 그 a변수를 출력하라는 footer.jsp에 적어둬도 사용 불가
--%>
<% out.println(a); %>
</footer>
</body>
</html>
main 페이지입니다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<h4> 메뉴 : <a href="05main.jsp">홈</a> <a href="05sub1.jsp">학과소개</a> 커뮤니티 오시는 길</h4>
<% int a = 6;%>
top.jsp 입니다.
<%@ page contentType = "text/html; charset=utf-8" %>
<p>
Copyright DONGYANG All Rights Reserved.
</p>
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>
<link rel = "stylesheet" href="05style.css">
</head>
<body>
<header>
<jsp:include page = "05top.jsp" flush = "false"/>
<%-- <% out.print(a); %> --%>
</header>
<section>
<h2> 첫번째 서브페이지입니다!!!!! </h2>
</section>
<footer>
<jsp:include page = "05footer.jsp" flush = "false"/>
<%-- <% out.print(a); %> --%>
</footer>
</body>
</html>
sub.jsp 입니다.
모듈로 만드는 이유는 관리하기가 쉽고 유지보수할 때 다 뜯어 고칠 필요 없이 해당 부분만 고치면 되기 때문입니다.
또한 Top.jsp와 Footer.jsp같이 고정적인 부분은 한 페이지로 돌려 쓸 수 있어서 파일의 양도 줄일 수 있습니다.
이렇게 jsp파일을 불러오는 방법은 2가지가 있습니다.
1. <%@ include file = "페이지" %>
<%@ include file= "05top.jsp" %>
2. <jsp:include page = "페이지" />
<jsp:include page = "05footer.jsp" flush = "false"/>
이 둘의 차이점이 있는데 include file의 경우 main페이지에서 쓰였습니다.
Top.jsp를 보면 <% int a = 6; %> 가 있는데 include file의 경우 Top.jsp코드를 직접 가져와서 직접 실행시켜서
그 결과물을 가져오기 때문에 a값이 남아있어서 out.print(a)를 했을 때 값이 나오게 된 것이죠
하지만 jsp:include page의 경우 Top.jsp의 출력된 결과화면만 가져오기 때문에 a값이 남아있지 않아서
변수가 없다고 에러가 나오게 됩니다.
반응형
'[Java] > [JSP, Servlet]' 카테고리의 다른 글
[JSP, Servlet] 자바빈 (0) | 2021.07.30 |
---|---|
[JSP, Servlet] page, request, session, application 영역 (0) | 2021.07.29 |
[JSP, Servlet] forward, sendRedirect (0) | 2021.07.28 |
[JSP, Servlet] getParameter, getParameterValues (0) | 2021.07.28 |
[JSP, Servlet] 버퍼 (buffer) (0) | 2021.07.28 |