action_tag_forward,include

Mia Lee·2021년 12월 17일
0

JSP

목록 보기
13/22

===================================================<<forward>>

<%@ 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>forwardForm.jsp - 포워딩 연습</h1>
	<form action="forwardPro.jsp" method="post">
		<!-- 
		GET 방식에서 URL 에 전달되는 파라미터를 숨겨야하거나
		POST 방식에서 입력받는 데이터 외의 데이터를 전달해야하는 경우
		<input type="hidden"> 태그를 사용하여 전달 가능
		-->
		<input type="hidden" name="jumin" value="901010-1234567">
		
		<h3>아이디 : <input type="text" name="id"></h3>
		<h3>패스워드 : <input type="password" name="passwd"></h3>
		<input type="submit" value="전송">
	</form>
</body>
</html>


<%@ 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>forwardPro.jsp</h1>
	<%
	request.setCharacterEncoding("UTF-8");
	
	// 폼파라미터로 전달받은 데이터(아이디, 패스워드) 가져와서 변수에 저장 후 출력
	String id = request.getParameter("id");
	String passwd = request.getParameter("passwd");
	
	// input type="hidden" 태그로 전달받은 파라미터로 request.getParameter() 메서드로 가져올 수 있음
	String jumin = request.getParameter("jumin");
	
	// forward 액션 태그에 포함시켜 전달할 데이터를 변수에 저장
	int num = 100;
	
// 	out.print("<h3>아이디 : " + id + "</h3>");
// 	out.print("<h3>패스워드 : " + passwd + "</h3>");
	%>
	<h3>아이디 : <%=id %></h3>
	<h3>패스워드 : <%=passwd %></h3>
	<h3>주민번호 : <%=jumin %></h3>
	
	<%-- 
	액션 태그(Action Tag)
	- JSP 페이지 내에서 자바 코드 등을 직접 사용하지 않고
	  XML 형식의 태그 문법을 활용하여 동일한 작업을 수행하도록 하는 태그(기능)
	- <jsp:액션태그명 속성명="" /> 형태로 사용하며
	  태그 내에 다른 태그를 포함해야하는 경우 끝 태그 </jsp:액션태그명> 을 사용해야함
	  => 주의! 반드시 끝태그 또는 끝 표시(/>) 를 포함해야함
	- 액션 태그명 : forward, include, useBean, setProperty 등
	
	1. forward 액션 태그
	- pageContext 객체의 forward() 메서드와 동일한 기능을 제공하는 액션 태그
	  즉, 페이지 이동 처리를 수행하는 액션 태그
	- 현재 페이지의 request 객체를 그대로 유지하여 페이지 이동 수행
	  => 주소표시줄의 URL(주소)이 그대로 유지되며, request 객체에 저장된 데이터가 유지됨
	     = Dispatcher 방식 포워딩
	- 포워딩 시 전달할 데이터는 주소(URL) 뒤에 파라미터 형식으로 붙여서 전달하거나
	  (ex. forwardPro.jsp?id=admin)
	  <jsp:param> 태그를 사용하여 데이터를 포함시켜 전달 가능(= input type="hidden" 과 동일)
	  => 단, <jsp:param> 태그 사용 시에는 파라미터가 URL 에 노출되지 않음
	
	< 기본 문법 >
	<jsp:forward page="포워딩 할 페이지 또는 파일"/>
	또는
	<jsp:forward page="포워딩 할 페이지 또는 파일">
		<jsp:param name="파라미터명1" value="데이터1"/>
		<jsp:param name="파라미터명2" value="데이터2"/>
	</jsp:forward>  
	--%>
	
	<!-- forward 액션 태그를 사용하여 "forwardPro2.jsp" 페이지로 포워딩 작업 수행 -->
<%-- 	<jsp:forward page="forwardPro2.jsp"/> --%>

	<!-- forward 액션 태그로 포워딩 시 데이터를 추가하여 포워딩 작업 수행 -->
	<!-- 일반적인 데이터는 name 속성의 문자열 형태로 전달하며 -->
	<!-- 자바 변수 데이터는 name 속성에 표현식을 결합하여 전달 -->
	<!-- 반드시 끝 태그를 별도로 작성해야함 -->	
	<jsp:forward page="forwardPro2.jsp">
		<jsp:param name="paramValue1" value="forward 액션태그의 param 데이터"/>
		<jsp:param name="paramValue2" value="<%=num %>"/>
	</jsp:forward> 
</body>
</html>









<%@ 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>forwardPro2.jsp</h1>
	<%
	// 이전 페이지에서 forward 액션태그로 이동할 경우 request 객체가 그대로 유지됨
	// 따라서, 폼파라미터로 전달받은 데이터를 그대로 사용할 수 있다! (GET/POST 방식 무관)
	// => request 객체가 유지되므로 인코딩 방식 변경 정보도 그대로 유지됨
	//    따라서, 이전페이지에서 한글 표현 방식(UTF-8) 지정했을 경우 
	//    현재 페이지에서 별도로 지정하지 않아도 request 객체 내의 한글 데이터가 깨지지 않음
	String id = request.getParameter("id");
	String passwd = request.getParameter("passwd");
	String jumin = request.getParameter("jumin");
	
	// forward 액션태그의 param 태그로 전달받은 데이터 가져오기 = 동일한 방식
	String paramValue1 = request.getParameter("paramValue1");
	String paramValue2 = request.getParameter("paramValue2");
	%>
	<h3>아이디 : <%=id %></h3>
	<h3>패스워드 : <%=passwd %></h3>
	<h3>주민번호 : <%=jumin %></h3>
	
	<!-- forward 액션태그의 param 액션태그로 전달받은 파라미터 출력 -->
	<h3>paramValue1 : <%=paramValue1 %></h3>
	<h3>paramValue2 : <%=paramValue2 %></h3>
</body>
</html>













===================================================<<include>>

<%@ 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>
	<%--
	2. include 액션 태그
	- 현재 페이지에 특정 페이지를 포함(include)시키는 용도의 액션 태그
	- 포함시킬 페이지로 제어권이 일시적으로 넘어간 후 해당 페이지에서의 작업이 끝나면
	  다시 원래 페이지로 제어권이 돌아옴
	  => 결국, forward 액션태그는 포워딩 된 후 그 위치에서 이전으로 돌아가지 않지만
	     include 액션태그는 포워딩 작업 후 다시 원래 위치로 돌아감(출력값을 전달하여 원래페이지에서 출력)
	- forward 액션태그와 마찬가지로 include 되는 페이지로 파라미터를 전달하려면
	  jsp:param 태그를 사용하여 전달 가능
	
	< 기본 문법 >
	<jsp:include page="포함할 페이지"/>
	또는 
	<jsp:include page="포함할 페이지">
		<jsp:param ... />
	</jsp:include>
	--%>
	<h1>includeTest.jsp</h1>
	<hr>
	<!-- includeTest2.jsp 페이지를 include 액션태그로 포함시키기 -->
<%-- 	<jsp:include page="includeTest2.jsp" /> --%>

	<!-- includeTest2.jsp 페이지 포함 시 파라미터 값 전달 -->
	<jsp:include page="includeTest2.jsp">
		<jsp:param name="paramValue" value="Parameter Value"/>
	</jsp:include>
</body>
</html>


<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
// 현재 페이지(includeTest2.jsp) 는 includeTest.jsp 페이지에 포함(삽입)될 페이지이며
// include 액션 태그 사용 시 param 태그로 전달한 파라미터를 가져와서 사용 가능함
String paramValue = request.getParameter("paramValue");
%>    
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h1>includeTest2.jsp</h1>
	<h3>include 액션 태그에 의해 포함되는 페이지입니다.</h3>
	<h3>전달받은 파라미터값 : <%=paramValue %></h3>
</body>
</html>


<%@ 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>includeTest3.jsp</h1>
	<table border="1">
		<tr>
			<td colspan="2" width="600" height="100">
				<!-- include_top.jsp 페이지 포함시키기 -->
				<!-- "id" 속성명으로 "admin" 값을 전달 -->
				<jsp:include page="include_top.jsp">
					<jsp:param name="id" value="admin" />
				</jsp:include>
			</td>
		</tr>
		<tr>
			<td width="100" height="300">
				<!-- include_left.jsp 페이지 포함시키기 -->
				<jsp:include page="include_left.jsp"/>	
			</td>
			<td>
				<h3>include_main.jsp</h3>
				<!-- include_main.jsp 페이지 포함시키기 -->
				<jsp:include page="include_main.jsp"/>
			</td>
		</tr>
		<tr>
			<td colspan="2" width="600" height="100">
				<!-- include_bottom.jsp 페이지 포함시키기 -->	
				<jsp:include page="include_bottom.jsp"/>
			</td>
		</tr>
	</table>
</body>
</html>


<%@ 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_top.jsp</h1>
	<span>상단메뉴1 상단메뉴2 상단메뉴3 상단메뉴4 상단메뉴5</span>
	<span><%=request.getParameter("id") %>님 환영합니다.</span>
</body>
</html>






<%@ 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>include_left.jsp</h3>
	<h3>브랜드패션</h3>
	<h3>의류,잡화,뷰티</h3>
	<h3>디지털</h3>
</body>
</html>




<%@ 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>메인페이지입니다.</h1>
</body>
</html>




<%@ 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_bottom.jsp</h1>
</body>
</html>



0개의 댓글