jsp

[jsp] 11. 포워드 액션태그를 이용한 프로그램 (스레드 자체가 이동)

jeri 2024. 7. 9. 21:24
반응형

01. controller.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
//<%-- 전달값에 따라 서로 다른 JSP 문서의 응답결과를 클라이언트에게 전달되도록 스레드를 
//이동하는 JSP 문서 - 프로그램의 흐름을 제어하는 기능 --%>    
<%
	//1.
	//전달값을 반환받아 저장
	String category=request.getParameter("category");

	//2.
	if(category==null) {//전달값이 없는 경우
		//클라이언트에게 URL 주소가 전달되도록 응답 처리
		// => URL 주소를 전달받은 클라이언트는 브라우저의 URL 주소를 변경하여 서버의 자원을
		//요청하여 결과를 응답받아 출력 - 페이지 이동
		response.sendRedirect("main.jsp");//리다이렉트 이동
		return;
	}
	
	//3.
	//전달값을 이용하여 스레드가 이동될 JSP 문서의 파일 경로를 생성하여 저장
	String filePath=category+".jsp";
	//System.out.println("filePath = "+filePath);
%>

//<%-- 🎩forward ActionTag : 요청 JSP 문서에서 page 속성값으로 설정된 JSP 문서로 스레드를 이동하여
//명령을 실행하고 처리결과를 클라이언트에게 전달하여 응답하기 위한 태그 --%>
//<%-- 형식) <jsp:forward page="JSP"></jsp:include> 또는 <jsp:forward page="JSP"/> --%>
//<%-- => page 속성값으로 JSP 표현식(Expression) 사용 가능 --%>
//<%-- 포워드 이동 : 요청 JSP 문서에서 응답 JSP 문서로 스레드를 이동하여 응답 처리 --%>
//<%-- => 클라이언트에 상관없이 서버측에서 이동 - 클라이언트 브라우저의 URL 주소 미변경 --%>
<jsp:forward page="<%=filePath %>"/>

 

02. main.jsp

  • action/forward/main.jsp
  • action/forward/controller.jsp
  • action/forward/controller.jsp?category=main

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSP</title>
</head>
<body>
	<h1>메인 페이지</h1>
	<hr>
//	<%-- 🍓방법1. 클라이언트가 각각에 해당하는 JSP 문서 직접 요청 --%>
//  <%--
//	<a href="company.jsp">회사연혁</a>&nbsp;&nbsp;
//	<a href="product.jsp">제품소개</a>&nbsp;&nbsp;
//	<a href="order.jsp">주문내역</a>&nbsp;&nbsp;
//	<a href="review.jsp">사용후기</a>&nbsp;&nbsp;
//	--%>

//	<%-- 🍑방법2. 클라이언트가 공통의 JSP 문서를 요청하며, 전달값에 따라 스레드를 이동시켜 명령을 실행하고 처리결과를 직접 "클라이언트"에게 전달 --%>	
	<a href="controller.jsp?category=company">회사연혁</a>&nbsp;&nbsp;
	<a href="controller.jsp?category=product">제품소개</a>&nbsp;&nbsp;
	<a href="controller.jsp?category=order">주문내역</a>&nbsp;&nbsp;
	<a href="controller.jsp?category=review">사용후기</a>&nbsp;&nbsp;
</body>
</html>

 

03. company.jsp

  • action/forward/controller.jsp?category=company

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSP</title>
</head>
<body>
	<h1>회사연혁 페이지</h1>
	<hr>
	<a href="main.jsp">메인 페이지</a>
</body>
</html>

 

04. product.jsp

  • action/forward/controller.jsp?category=product

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSP</title>
</head>
<body>
	<h1>제품소개 페이지</h1>
	<hr>
	<a href="main.jsp">메인 페이지</a>
</body>
</html>

 

05. order.jsp

  • action/forward/controller.jsp?category=order

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSP</title>
</head>
<body>
	<h1>주문내역 페이지</h1>
	<hr>
	<a href="main.jsp">메인 페이지</a>
</body>
</html>

 

06. review.jsp

  • action/forward/controller.jsp?category=review

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSP</title>
</head>
<body>
	<h1>사용후기 페이지</h1>
	<hr>
	<a href="main.jsp">메인 페이지</a>
</body>
</html>

 

반응형