페이지 이동

치로·2024년 9월 5일

1. forward

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

2. redirect

  • 클라이언트가 새로 페이지를 요청한 것과 같은 방식으로 페이지가 이동됨
  • request, response가 유지되지 않음(새로 만들어짐)
  • 이동된 url이 화면에 보인다
  • 리다이렉트하는 방법 :
    response.sendRedirect("이동할 페이지");
<%@ 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="button" 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;
			}
			
			// 생일이 빈값이면 생일 정보를 입력하세요
			if (birthTag.value=="") {
				alert("생일 정보를 입력하세요");
				birthTag.focus();
				return false;
			}
			
			// 페이지 submit()
			joinForm.submit();
		}
	</script>
</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>
	<%
		String username = request.getParameter("username");
		String userbirth = request.getParameter("userbirth");
		
		// forward 방식 : request 객체가 유지
		// redirect 방식 : request 객체 재생성
		// pageContext.forward("object_result.jsp");
		
		// redirect 방식 : request 객체 재생성
		response.sendRedirect("object_result.jsp");
	%>
</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>
	<%=request.getParameter("username") %>
	님 어서오세요<br>
	<%=request.getParameter("userbirth") %>
</body>
</html>

0개의 댓글