웹 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