웹 Web/JSP & Servlet

JSP 내장 객체 (2) - forward

하나비 HANABI 2022. 1. 17. 13:10

forward 

p.196

forward 방식:

forward 메소드는 requestDispatcher 객체로 접근해야만 호출 가능.

requestDispatcher 객체는 request 객체의 getRequestDispatcher() 메소드를 호출하여 얻어냄

이렇게 얻어냄 requestDispatcher 객체로 forward() 메소드를 호출하면 getRequestDispatcher()메소드의 매개 변수로 지정한 페이지로 이동

 

 

p.208 내장객체에서

 

<44_loginForm.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>
<form method="post" action="45_redirectTest.jsp">
<h2>나이를 입력하세요</h2> <br>
<label for="userage"> 나이: </label>
<input type="text" name="age" id="userage"> <br>
<input type="submit" value="입장">
</form>
</body>
</html>

 

<45_redirectTest.jsp>

<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
int age = Integer.parseInt((request.getParameter("age")));
if(age <= 19) {
%>
<script> 
	alert("미성년자는 이용하실 수 없습니다");
	history.go(-1); // 이전페이지로 돌아가기
</script> 
<%
} else {
	request.setAttribute("name", "최연준");
	RequestDispatcher dispatcher = request.getRequestDispatcher("44_main.jsp");
	dispatcher.forward(request, response);
}
%>
</body>
</html>

 

<44_main.jsp>

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
String name = (String)request.getAttribute("name");
String age = request.getParameter("age");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>환영합니다</h1>
이름: <%=name %> <br>
나이: <%=age %>
</body>
</html>

환영합니다

이름: 최연준
나이: 24