[JSP] include와 forward 메서드

728x90

[ 2023. 5. 20 기준]

1. include 메서드

JSP에서는 include를 사용하여 웹페이지의 일부를 고정시켜놓을 수 있다.

예시를 통해 살펴보자

<header>

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@ include file="/include/dbconnection.jsp" %>
    
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jsp 테스트</title>

<style>
	body{
		margin:0px;
		padding:0px;
		font-size:11px;
		
	}
</style>
<script>
	function id_s(){
		window.open("/member/id_search.jsp","b","width=600,height=200");
		
	}
	function pass_s(){
		window.open("/member/pass_search.jsp","c","width=600,height=200");
		
	}

</script>
</head>
<body>
<%
String session_id = (String)session.getAttribute("id");
String session_name = (String)session.getAttribute("name");
String session_level =(String)session.getAttribute("level");
%>
session_id :<%=session_id %> <br>
session_name: <%=session_name %><br>
session_level: <%=session_level %><br>

 <table border=0 width=100%>
 	<tr>
 		<td align="left">
 		<a href = "/"><img src="/img/logo.png"></a></td>
 		<td align="right">
 		<%
			if(session_level != null && session_level.equals("10")){
				out.print("<a href = '/admin/'>[관리자]</a>");
			}
 		%>
 		
 		<%if(session_id ==null){//로그인전 %>
 		<a href ="" onclick ="id_s()">[아이디 찾기]</a>
 		<a href ="" onclick ="pass_s()">[비밀번호 찾기]</a>
		<a href = "/member/login.jsp">[로그인]</a>
 		<a href ="/member/join.jsp">[회원가입]</a>
 		<%}else{//로그인 후 %>
 		<a href = "/member/logout.jsp">[로그아웃]</a>
 		<a href ="/member/join_up.jsp">[회원수정]</a>
 		<%} %>
 		
 		<%-- <%if(session_id ==null){ 위와 동일한 출력문
 			out.print("<a href = '/member/login.jsp'>[로그인]</a>");
 			out.print("<a href ='/member/join.jsp'>[회원가입]</a>");
 		}else{
 			out.print("<a href = '/member/logout.jsp'>[로그아웃]</a>");
 			out.print("<a href ='/member/join_up.jsp'>[회원수정]</a>");
 		}
 		%> --%>
 		
 	</tr>
 	<tr>
 		<td colspan ="2" align ="center">
 			<a href ="/bbs/list.jsp?code=notice">[공지사항]</a>
 			<a href ="/bbs2/list.jsp?code=gallery">[갤러리]</a>
 			<a href ="/bbs2/list.jsp?code=qna">[질문&답변]</a>
 		</td>
 		
 	</tr>
 	<tr>
 		<td colspan ="2" align ="center">
 			첨부파일 :
 			
 			<a href ="/bbs4/list.jsp?code=notice">[공지사항]</a>
 			<a href ="/bbs4/list.jsp?code=gallery">[갤러리]</a>
 			<a href ="/bbs4/list.jsp?code=gallery">[갤러리]</a>
 			
 		</td>
 	</tr>
 	<tr>
 		<td colspan ="2" align ="center">
 		한줄평 :
 			<a href ="/bbs5/list.jsp?code=notice">[공지사항]</a> <!-- code 값이 입력되어 있어야 이동이 가능하다. -->
 			<a href ="/bbs5/list.jsp?code=gallery">[갤러리]</a>
 			<a href ="/bbs5/list.jsp?code=qna">[질문&답변]</a>
 			<a href ="/bbs5/list.jsp?code=free">[자유게시판]</a>
 		</td>
 		
 	</tr>
 </table>
 <hr>

 

<footer>

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<hr>
 <table border=0 width=100%>
 	<tr>
 		<td align=center >카피라이터</td>
 	</tr>
 </table>

</body>
</html>

 

<본문>

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
<%@ include file ="/include/header.jsp" %>

 <table border=0 width=100%>
 	<tr>
 		<td>본문</td>
 	</tr>
 </table>
 
 <%@ include file ="/include/footer.jsp" %>

위 3개의 코드를 보면 header와 footer의 코드가 불완전 한것을 볼 수 있다.

(header에는 body태그를 열었지만, 닫지 않았으며, footer에서는 body태그를 열지 않고 닫기만 했다.)

그럼에도 결과물은 정상적으로 출력됨을 확인할 수 있다.

 

이유는 본문인 index JSP파일에서 include로 hearder와 footer와 본문을 연결 시켰기때문이다.

include를 활용하여 모든 JSP파일에 내용을 작성하는 것이 아니라 한개의 JSP파일에만 작성하여 웹페이지의 모든 곳에서 해당내용을 출력할 수 있다.

※jsp본문에서 자바를 사용하려면 스크립틀릿 <% %> 을 사용한다.

 

2. forward 메서드

foward 메소드는 주체 페이지에서 주소는 자기가 가지고 정보를 다른페이지에 넘겨주면서 실행도 그 페이지에서 하게 하는 것이다.

include의 반대개념에 가깝다.

예를 들어 살펴보자

<eee.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>
<h3>param 액션태그</h3>
<jsp:forward page="fff.jsp">
	<jsp:param name="id" value="1111" />
	<jsp:param name="pass" value="2222" />
</jsp:forward>
</body>
</html>

<fff.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>
<%
String id =request.getParameter("id");
String pass = request.getParameter("pass");

%>
id=<%=id %><br>
pass=<%=pass %>


</body>
</html>

위 결과물을 보면 주소는 eee.jsp로 되어있지만, 본문의 결과물을 보면 fff페이지이다.

'JAVA Programming > JSP' 카테고리의 다른 글

[JSP] 내장 객체  (0) 2024.05.13
[JSP] EL과 JSTL  (0) 2024.05.13
[JSP] 이클립스에서 웹프로젝트 및 JSP 파일 만들기 & 실행  (0) 2024.04.26
JSP 기초 및 환경설정  (0) 2024.04.24