>  기사  >  Java  >  Java 요청 전달과 요청 리디렉션의 차이점은 무엇입니까?

Java 요청 전달과 요청 리디렉션의 차이점은 무엇입니까?

WBOY
WBOY앞으로
2023-05-05 15:46:151890검색

머리말

Java에서는 점프를 구현하는 방법이 두 가지가 있습니다. 요청 전달과 요청 리디렉션이 있지만 둘은 완전히 다르기 때문에 오늘은 이에 대해 논의하겠습니다.

요청 전달과 요청 리디렉션의 주요 차이점은 다음 5가지입니다.

  • 다른 정의

  • 다른 점프 파티

  • 다른 데이터 공유

  • 최종 URL 주소가 다릅니다.

  • 코드 구현이 다릅니다

다음으로 하나씩 살펴보겠습니다.

1. 다른 정의

요청 전달(Forward): 서버가 클라이언트로부터 요청을 받으면 먼저 대상 주소로 요청을 전달한 다음 대상의 결과를 반환합니다. 주소가 고객에게 전달됩니다. 클라이언트는 이 모든 것을 알지 못하고, 이는 마치 장삼(클라이언트)이 리시(서버)에게 돈을 빌리는 것과 같으며, 리시는 돈이 없어서 리시가 왕우에게 돈을 빌리고, 장산에게 돈을 빌려주는 것과 같습니다. San, Zhang San은 전체 과정에서 한 번만 돈을 빌렸고 Li Si는 나머지를 전달하도록 요청합니다. **요청 리디렉션(리디렉션): 요청 리디렉션은 서버가 클라이언트의 요청을 받은 후 클라이언트에 임시 응답 헤더를 반환하는 것을 의미합니다. 이 임시 응답 헤더에는 클라이언트가 요청을 다시 보내야 함(리디렉션) URL 주소가 기록되어 있습니다. . 클라이언트가 주소를 받은 후 새 주소로 요청을 보냅니다. 이것이 요청 리디렉션입니다. **이것은 장산(클라이언트)이 리시(서버)에게 돈을 빌려달라고 요청하는 것과 같습니다. 리시는 돈이 없어서 장산에게 "돈이 없으니 왕우에게 가서 돈을 빌리세요"라고 말합니다. 장삼 나는 다시 왕우의 집에 가서 돈을 빌렸다.

2. 요청 당사자가 다릅니다

위의 요청 전달과 요청 리디렉션의 정의에서 다음을 확인할 수 있습니다. 요청 전달은 서버 측 동작입니다. 서버가 클라이언트를 대신하여 요청을 보내고 반환합니다. 요청 리디렉션은 클라이언트의 동작이며 상호 작용 프로세스는 아래 그림과 같습니다.

Java 요청 전달과 요청 리디렉션의 차이점은 무엇입니까?

3. 데이터 공유가 다릅니다

요청 전달이 서버에서 구현됩니다. 측이므로 전체 실행 과정에서 클라이언트(브라우저 측)는 한 번만 요청을 보내면 되므로 전체 상호작용 과정에서 동일한 Request 요청 객체와 Response 응답 객체가 사용되므로 전체 요청 과정에서 , 요청과 반환된 데이터가 공유되고 요청이 반복됩니다. 완전히 다른 두 요청을 클라이언트에 보내므로 두 요청의 데이터가 다릅니다.

4. 최종 URL 주소가 다릅니다

요청 전달은 서버가 요청한 다음 결과를 클라이언트에 반환하는 것이므로 전체 요청 프로세스 동안 URL 주소는 변경되지 않고 유지됩니다. 요청 리디렉션은 서버가 이를 알려 주는 것입니다. 클라이언트가 "다른 곳으로 가서 방문하세요"라고 요청하면 브라우저가 요청을 다시 보내므로 클라이언트가 최종적으로 표시하는 URL도 최초 요청의 주소가 아닌 최종 점프 주소이므로 URL 주소가 변경되었습니다. .

5. 코드 구현이 다릅니다

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제