게으른 개발자의 끄적거림

forward와 redirect 차이점

끄적잉 2023. 9. 13. 22:12
반응형

 

  • forward와 redirect 차이점:
forward 방식 sendRedirect 방식
JSP 액션 태그이다. JSP 내장 객체이다. (response)
요청 정보가 유지된다. 새로운 요청이 수행된다.
URL이 변화하지 않는다. URL이 변화한다.
객체를 재사용한다. 객체를 재사용하지 않는다. (새로운 요청)
시스템 변화가 생기지않는 요청에 적합 (검색 등의 단순 조회) 시스템 변화가 생기는 요청에 적합 (로그인, 글쓰기 등)

 

 

특정  페이지로 이동하는 방법은 크게 2가지

A. forward와 redirect의 차이

           1. foward
                request, response 객체도 넘김
                url 안바뀜, 클라이언트(브라우저)는 모르게 서버에서만 일어난 일
           2. redirect
                request, response 새로 생성, 데이터 유지 안됌
                url 바뀜, 호출은 2번 이루어짐

B. forward 방법
          1. pageContext.forward(url);
          2. <jsp:forward page = "url" />
          3. RequestDispatcher rd = request.getRequestDispatcher(url);
               rd.forward(request, response);
          4. 1번과 2번 차이
                 we can use RequestDispatcher in Servlet as well as jsp
                 but PageContext we can use in only jsp.
          5. 2번과 3번 차이
                  Both are same.
                  When <jsp:forward> is translated to servlet then requestdispatcher is used to forward the request.
C. redirect 방법
            1. response.sendRedirect(url);
            2. request parameter가 유지가 안되므로 유지하고자 할 경우
                       1) response.sendRedirect("result.jsp?id=1")과 같이 찍으면 parameter를 넘길 수 있다.

 

 

참조 : 

https://ninetynine-2026.tistory.com/174

 

sendRedirect와 forward 차이

What is difference between sendRedirect and forward? sendRedirect와 forward의 차이점은 무엇입니까? The main important difference between the forward() and sendRedirect() method is that in case of forward(), redirect happens at server end and not

ninetynine-2026.tistory.com

 

반응형