Dispatcher 방식과 Redirect 방식
Back-End/JSP 2019. 5. 24. 11:17Dispatcher 방식과 Redirect 방식
1. Dispatcher방식 -->forward()
forward()[전달하기]는 클라이언트가 요청하면서 전송한 데이터를 그대로 유지한다.
(1) 예제
RequestDispatcher dispatcher = request.getRequestDispatcher("dispatcher.jsp");
request.setAttribute("request","requestValue");
dispatcher.forward(request, response);
dispatcher.jsp
request 속성 값 : <%=request.getAttribute("request") %>
포워딩이 되더라도 주소가 변경되지 않는다. (같은 request영역을 공유하게 됨)
출처: https://devbox.tistory.com/entry/Comporison-Dispatcher방식과-Redirect-방식 [장인개발자를 꿈꾸는 :: 기록하는 공간]
2. Redirect 방식 --> sendRedirect()
Redirect()[이동하기]는 새로운 페이지로 완전히 이동해서 기존 데이터를 하나도 사용할 수 없다.
request.setAttribute("request", "requestValue");
response.sendRedirect("redirect.jsp");
redirect.jsp
request 속성 값 : <%=request.getAttribute("request") %> // null
포워딩될 때 브라우저의 주소 표시줄의 URL이 변경된다. 포워딩된 jsp페이지에서는 서블릿에서 request영역에 공유한 속성값에 접근 할 수 없다.
(1) 예제
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class Round14_05_Servlet extends HttpServlet {
public void service(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
//한글 데이터가 없기 때문에 Encode 설정 하지 않음.
String method = request.getMethod();
//요청 메서드를 얻어내는 작업
if(method.equalsIgnoreCase("GET")) {
//요청 방식이 GET이라면
response.sendRedirect("http://localhost:8080/Round14/Round14_05_Get_Servlet.htm");
//Round14_05_Get_Servlet.htm으로 이동한다.
return;
}
else if(method.equalsIgnoreCase("POST")){
//요청 방식이 POST라면
response.sendRedirect("Round14_05_Post_Servlet.htm");
//Round14_05_Post_Servlet.htm으로 이동한다.
return;
}
}
}
출처: https://devbox.tistory.com/entry/Comporison-Dispatcher방식과-Redirect-방식 [장인개발자를 꿈꾸는 :: 기록하는 공간]
'Back-End > JSP' 카테고리의 다른 글
19.05.24 게시판 보기 (model 2 동영상 12강~14강) (0) | 2019.05.24 |
---|---|
19.05.24 회원가입 (model 2 동영상 11강) (0) | 2019.05.24 |
19.05.23 고급 서블릿 파라미터 활용 (model 2 동영상 9강~10강) (0) | 2019.05.23 |
19.05.23 고급 서블릿 파라미터 활용 (model 2 동영상 8강) (0) | 2019.05.23 |
19.05.23 고급 서블릿 활용 (model 2 7강) (0) | 2019.05.23 |