본문 바로가기

카테고리 없음

HTML - JSP - forward와 response의 차이 이해를 위한 예제

forward와 response의 차이를 이해하기 위한 예제이다.

 

forward는 페이지 제어권을 넘겨주기 때문에 내용을 end.jsp 까지 보낼 수 있으며,

내용에 수정,추가 가능하다는 것을 알 수 있다.

 

 

시작페이지 코드 ( 내용을 입력할 jsp )

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>시작페이지</title>
</head>
<body>

<!-- 시작페이지에서는 form태그로 요청을 보낼 준비를함 -->
<form action="forward.jsp" method="post">
   forward 액션: <input type="text" name="uname">
   <input type="submit" value="전송!">
</form>

<hr>

<form action="response.jsp" method="post">
   response.sendRedirect(): <input type="text" name="uname">
   <input type="submit" value="전송!">
</form>

</body>
</html>

 

내용이 출력될 화면의 jsp 코드

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>종료 페이지</title>
</head>
<body>

<h1>종료 페이지</h1>
<hr>
이름: <%= request.getParameter("uname") %> <br>
메세지: <%= request.getParameter("msg") %>

</body>
</html>

 

foward.jsp ( foward 방식으로 전달을 위한 코드 )

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<jsp:forward page="end.jsp">
	<jsp:param value="apple" name="msg"/>
</jsp:forward>

 

response.jsp ( response 방식으로 전달을 위한 코드)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
    
  
<% response.sendRedirect("end.jsp"); %>

 

 

수행결과 

forward와 response 시작페이지

 

1)

forward 액션 : 에 hello 라는 내용을 입력하고 전송을 보낸 뒤 수행결과

나는 분명 hello 라는 것 밖에 전달하지 않았지만,

결과창에선 forward.jsp에 추가로 설정해논 msg 값까지 추가되어 전달이 된 것을 볼 수 있다. ( 제어권을 넘겨 받았기 때문)

 

 

 

2)

response.sendRedirect() 에 hello 라는 내용을 입력하고 전송을 보낸 뒤 수행결과

똑같은 hello를 보냈는데 null이 도착한 것을 볼 수 있음,

이것은 제어권을 받지 못하고 다시 제어권을 돌려주어서 response.jsp 에는 내가 입력한 hello가 있지만,

그 후에 end.jsp 까지는 전달하지 못한 것을 볼 수 있음.