찾다
Javajava지도 시간Java 요청 전달과 요청 리디렉션의 차이점은 무엇입니까?

머리말

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

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

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

SecList

SecList

SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.