>  기사  >  Java  >  Java에서 전달이란 무엇입니까?

Java에서 전달이란 무엇입니까?

(*-*)浩
(*-*)浩원래의
2019-05-22 20:03:338401검색

Java에서 전달은 "직접 전달 방법"을 의미합니다. 직접 방법의 경우 클라이언트 브라우저는 요청을 서블릿, HTML, JSP 또는 기타 정보 리소스로 전달합니다. 두 번째 정보 리소스는 요청 개체 요청에 대해 저장됩니다. 정보자원은 공유됩니다.

Java에서 전달이란 무엇입니까?

사용자가 서버에 HTTP 요청을 보냅니다. 요청은 사용자에게 반환되기 전에 여러 정보 리소스에 의해 처리될 수 있습니다. 요청 전달을 느끼지 않습니다. 전달 방법에 따라 직접 요청 전달(Forward)과 간접 요청 전달(Redirect)로 구분할 수 있습니다.

직접 전달 방식(Forward)은 클라이언트와 브라우저가 서블릿, HTML, JSP 또는 기타 정보 리소스 중 하나의 요청만 발행하고 두 번째 정보 리소스는 요청 개체 요청에 대해 저장된 개체입니다. 정보자원은 공유됩니다.

간접 전달 방법(리디렉션)은 실제로 두 개의 HTTP 요청입니다. 서버가 첫 번째 요청에 응답하면 브라우저가 전달 목적을 달성하기 위해 다른 URL로 요청을 보낼 수 있습니다.

일반적인 예를 들자면:

직접 전달은 다음과 같습니다. "A가 B에게 돈을 빌려달라고 요청하고 B는 돈이 없다고 말하고 B는 C에게 돈을 빌리러 갑니다. 대출이 불가능할 경우 메시지는 다음과 같습니다. pass to A";

간접 전달 다음과 같습니다: "A가 B에게 돈을 빌려달라고 요청했지만 B는 돈이 없다고 해서 A에게 C에게 돈을 빌려달라고 요청했습니다."

직접 전달 방법에 대한 자세한 설명(전달)

직접 전달 방법을 더 자주 사용합니다. 일반적으로 요청 전달은 직접 전달 방법을 말합니다. 대부분의 웹 애플리케이션에는 컨트롤러가 있습니다. 요청을 어떤 정보 리소스로 전달해야 하는지 제어하는 ​​것은 컨트롤러의 몫입니다. 그런 다음 이러한 정보 리소스는 요청을 처리하고 처리 후 다른 정보 리소스로 전달되어 사용자에게 반환될 수 있습니다.

javax.serlvet.RequestDispatcher 인터페이스는 요청 전달자가 구현해야 하는 인터페이스입니다. 웹 컨테이너는 이 인터페이스를 구현하는 객체를 서블릿에 제공합니다. 요청 전달의 목적은 이 인터페이스의 전달() 메서드를 호출하여 달성됩니다. 샘플 코드는 다음과 같습니다.

......
    //Servlet里处理get请求的方法
 public void doGet(HttpServletRequest request , HttpServletResponse response){
     //获取请求转发器对象,该转发器的指向通过getRequestDisPatcher()的参数设置
   RequestDispatcher requestDispatcher =request.getRequestDispatcher("资源的URL");
    //调用forward()方法,转发请求      
   requestDispatcher.forward(request,response);    
}......

Java에서 전달이란 무엇입니까?

위 그림에 표시된 요청을 직접 전달하는 과정은 다음과 같습니다.

  • 브라우저가 Servlet1에 액세스 요청을 보냅니다.

  • Servlet1이 전달을 호출합니다. () 메소드를 사용하여 서버 측의 Servlet2에 요청을 전달합니다.

  • 마지막으로 Servlet2가 응답합니다.

팁: 실제로 브라우저를 통해 서버에서 사용하는 요청 전달 방법을 관찰할 수 있습니다. 하이퍼링크를 클릭하면 서버가 완료 후 응답하면 브라우저의 주소 표시줄이 나타납니다. , 주소 표시줄의 주소가 변경된 것으로 확인되어 요청이 간접적으로 전달되었음을 증명합니다. 반대로, 주소가 변경되지 않으면 직접 전달을 요청하거나 전달하지 않음을 의미합니다.

추가 정보:

직접 전달과 간접 전달의 원칙과 차이점은 무엇인가요?

답변: 전달 및 리디렉션은 직접 전달과 간접 전달이라는 두 가지 요청 전달 방법을 나타냅니다. 해당 코드에 해당하는 것은 RequestDispatcher 클래스의 전달() 메소드와 HttpServletRequest 클래스의 sendRedirect() 메소드입니다.

간접 방법의 경우 서버가 첫 번째 요청에 응답하면 브라우저가 전달 목적을 달성하기 위해 다른 URL에 또 다른 요청을 할 수 있습니다. 이는 본질적으로 두 개의 요청 개체에 해당하는 두 개의 HTTP 요청입니다.

직접 방식의 경우 클라이언트 브라우저는 하나의 요청만 발행하고 서블릿은 요청을 서블릿, HTML, JSP 또는 기타 정보 리소스로 전달합니다. 두 번째 정보 리소스는 요청에 응답합니다. .

위 내용은 Java에서 전달이란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.