Web-Forward&Redirect
Forward&Redirect
페이지의 요청을 처리하는 방식이다.
Forward | Redirect | |
대상 | Server to Server | Client to Server |
Data Input | request.setAttribute | URL |
Data Output | request.getAttribute | request.getParameter |
사용이유 | 객체 재상용, 공유 | URL 변화 |
Html
각각 Forward 와 Redirect라는 URL로 요청을 보내게 된다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
Foward 방법: <br>
<form action="Forward" method="post">
Information Input: <input type="text" name="data" value="tom">
<input type="submit">
</form><br>
Redirect 방법: <br>
<form action="Redirect" method="post">
Information Input: <input type="text" name="data" value="tom">
<input type="submit">
</form>
</body>
</html>
실행 화면:
Forward
Forward방식으로 요청을 처리하는 방식이다.
1) Forward.java
- Forward라는 요청이 들어왔을때 요청하는 곳이다.
- name변수에 HTML에서 data의 이름을 가진 변수의 값을 저장한다.
- data변수에 “Foward”와 name의 변수를 담는다.
- Forward.jsp에 data를 전달한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package pack;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class Forward
*/
@WebServlet("/Forward")
public class Forward extends HttpServlet {
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
String name = request.getParameter("data");
String data[] = {"Forward",name};
//forwarding - Server to Server
request.setAttribute("data", data);
RequestDispatcher dispatcher = request.getRequestDispatcher("Forward.jsp");
dispatcher.forward(request, response);
}
}
2) Forward.jsp
- 받은 자료를 출력하는 곳 이다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<%@ 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>
Called File by Servlet
<br>
<%
request.setCharacterEncoding("utf-8");
//redirect Method
String[] data = (String[]) request.getAttribute("data");
out.println("방식은"+data[0]+"자료는" + data[1]);
%>
</body>
</html>
결과 URL:
결과:
Redirect
Redirect방식으로 요청을 처리하는 방식이다.
1) Redirect.java
- Redirect라는 요청이 들어왔을때 요청하는 곳이다.
- name변수에 HTML에서 data의 이름을 가진 변수의 값을 저장한다.
- Forward.jsp에 name을 전달한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package pack;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class Redirect
*/
@WebServlet("/Redirect")
public class Redirect extends HttpServlet {
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
String name = request.getParameter("data");
//Redirect - Client to Server
response.sendRedirect("Redirect.jsp?name=" + name);
}
}
2) Redirect.jsp
- 받은 자료를 출력하는 곳 이다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<%@ 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>
Called File by Servlet
<br>
<%
//redirect Method
String name = request.getParameter("name");
out.println("방식은 Redirect 자료는 " + name);
%>
</body>
</html>
결과 URL:
결과:
참조:원본코드
코드에 문제가 있거나 궁금한 점이 있으면 wjddyd66@naver.com으로 Mail을 남겨주세요.
Leave a comment