sendRedirect와 forward는 서버측에서 클라이언트의 요청에 대한 처리 결과를 전달하기 위한 두 가지 방법입니다.
sendRedirect
클라이언트에게 다른 URL로 이동하도록 요청하는 메서드입니다. 이 메서드는 서버에서 클라이언트에게 새로운 요청을 보내도록 하여, 클라이언트가 다른 페이지로 이동하게 됩니다. 이 때, URL이 변경되므로 브라우저에서는 새로운 페이지를 요청하는 것으로 인식합니다. 따라서, 클라이언트의 요청과 서버의 응답은 두 번 발생하게 되며, 서버에서는 새로운 요청에 대한 처리를 해야 합니다.
response.sendRedirect("<http://example.com/newPage>");
forward
서버에서 클라이언트의 요청을 처리한 후, 다른 페이지로 데이터를 전달하여 클라이언트에게 응답하는 방식입니다. 이 때, 클라이언트는 이전의 URL을 유지한 상태에서 새로운 페이지의 내용을 받아볼 수 있습니다. 따라서, 클라이언트의 요청과 서버의 응답은 한 번 발생하며, 서버에서는 현재의 요청에 대한 처리를 완료한 후, 전달받은 데이터를 이용하여 다른 페이지를 출력합니다.
RequestDispatcher dispatcher = request.getRequestDispatcher("/newPage.jsp");
dispatcher.forward(request, response);
따라서, sendRedirect는 페이지 이동을 위해 새로운 요청을 생성하므로 속도가 느리지만, URL이 변경되어 브라우저에서 캐시를 이용하지 않아 최신 정보를 보여줄 수 있습니다.
반면, forward는 현재의 요청을 이용하여 데이터를 전달하므로 속도가 빠르지만, URL이 변경되지 않기 때문에 브라우저에서 캐시를 이용하여 최신 정보를 보여주지 못할 수 있습니다.
따라서, sendRedirect와 forward는 각각의 상황에 맞게 사용해야 하며, 적절한 방법을 선택하여 사용하는 것이 중요합니다.
https://doublesprogramming.tistory.com/63 참고
'Web' 카테고리의 다른 글
서블릿 , JSP , 4가지 scope (0) | 2023.02.22 |
---|---|
RESTful API (0) | 2023.02.22 |
요청객체 , 응답객체 (0) | 2023.02.22 |
XMLHttpRequest (0) | 2023.02.07 |
Ajax (0) | 2023.02.07 |
댓글