Java에서는 점프를 구현하는 방법이 두 가지가 있습니다. 요청 전달과 요청 리디렉션이 있지만 둘은 완전히 다르기 때문에 오늘은 이에 대해 논의하겠습니다.
요청 전달과 요청 리디렉션의 주요 차이점은 다음 5가지입니다.
다른 정의
다른 점프 파티
다른 데이터 공유
최종 URL 주소가 다릅니다.
코드 구현이 다릅니다
다음으로 하나씩 살펴보겠습니다.
요청 전달(Forward): 서버가 클라이언트로부터 요청을 받으면 먼저 대상 주소로 요청을 전달한 다음 대상의 결과를 반환합니다. 주소가 고객에게 전달됩니다. 클라이언트는 이 모든 것을 알지 못하고, 이는 마치 장삼(클라이언트)이 리시(서버)에게 돈을 빌리는 것과 같으며, 리시는 돈이 없어서 리시가 왕우에게 돈을 빌리고, 장산에게 돈을 빌려주는 것과 같습니다. San, Zhang San은 전체 과정에서 한 번만 돈을 빌렸고 Li Si는 나머지를 전달하도록 요청합니다. **요청 리디렉션(리디렉션): 요청 리디렉션은 서버가 클라이언트의 요청을 받은 후 클라이언트에 임시 응답 헤더를 반환하는 것을 의미합니다. 이 임시 응답 헤더에는 클라이언트가 요청을 다시 보내야 함(리디렉션) URL 주소가 기록되어 있습니다. . 클라이언트가 주소를 받은 후 새 주소로 요청을 보냅니다. 이것이 요청 리디렉션입니다. **이것은 장산(클라이언트)이 리시(서버)에게 돈을 빌려달라고 요청하는 것과 같습니다. 리시는 돈이 없어서 장산에게 "돈이 없으니 왕우에게 가서 돈을 빌리세요"라고 말합니다. 장삼 나는 다시 왕우의 집에 가서 돈을 빌렸다.
위의 요청 전달과 요청 리디렉션의 정의에서 다음을 확인할 수 있습니다. 요청 전달은 서버 측 동작입니다. 서버가 클라이언트를 대신하여 요청을 보내고 반환합니다. 요청 리디렉션은 클라이언트의 동작이며 상호 작용 프로세스는 아래 그림과 같습니다.
SpringBoot에서 요청 전달을 위한 구현 코드는 다음과 같습니다.
@RequestMapping("/fw") public void forward(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.getRequestDispatcher("/index.html").forward(request, response); }
그리고 요청 리디렉션을 위한 구현 코드는 다음과 같습니다.
@RequestMapping("/rt") public void redirect(HttpServletRequest request, HttpServletResponse response) throws IOException { response.sendRedirect("/index.html"); }
위 내용은 Java 요청 전달과 요청 리디렉션의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!