[JSP] 페이지 이동 - forward / redirect

형이·2023년 8월 21일
0

JSP

목록 보기
18/32
post-thumbnail
post-custom-banner

📝 JSP

🖥️ 1. 페이지 이동

1-1. forward

  • request에 담긴 값이 유효하다. (request, response가 유지)
  • 이동된 URL이 화면에 안 보인다. (사용자는 이동했는지 알 수 없음)
  • 포워드 하는 방법
    방법 1)
    pageContext.forward("이동할 페이지");
    방법 2)
    <jsp:forward page="이동할 페이지" />

1-2. redirect

  • 클라이언트가 새로 페이지를 요청한 것과 같은 방식으로 페이지가 이동된다. request, response가 유지되지 않는다 (새로 만들어짐)
  • 이동된 URL이 화면에 보인다.
  • 리다이렉트 하는 방법
    response.sendRedirect("이동할 페이지");


📝 예제

EX) object.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>내장 객체 예제</h3>
	<form action="object_ok.jsp" name="joinForm">
		<fieldset>
			<legend>개인정보</legend>
			<input type="text" name="username" />
			<input type="date" name="userbirth" />
			<input type="submit" value="확인" onclick="sendit();" />
		</fieldset>
	</form>
	
	<script>
		function sendit(){
			let joinForm = document.joinForm;
			let nameTag = joinForm.username;
			let birthTag = joinForm.userbirth;
			
			if( nameTag.value == "" ){
				alert("이름을 입력하세요");
				nameTag.focus();
				return false;
			}
			joinForm.submit();
		}
	</script>
</body>
</html>

EX) object_result.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>
	<%=request.getParameter("username") %>님 어서오세요<br/>
	생일은 <%=request.getParameter("userbirth") %>이시네요!
</body>
</html>

EX) object_ok.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 username = request.getParameter("username");
		String userbirth = request.getParameter("userbirth");
		
		// 로직 처리
		// ...
		
		// forward : request 객체 유지
		pageContext.forward("object_result.jsp");
        
        // redirect : request 객체 재생성
		response.sendRedirect("object_result.jsp");
	%>
</body>
</html>

  • forward 방식으로 페이지 이동 했을 경우 결과

  • redirect 방식으로 페이지 이동 했을 경우 결과

post-custom-banner

0개의 댓글