복붙노트

[SPRING] Spring MVC Controller : "return forward", "return redirect"및 "return jsp file"의 차이점은 무엇입니까?

SPRING

Spring MVC Controller : "return forward", "return redirect"및 "return jsp file"의 차이점은 무엇입니까?

나는 내가 무엇을 사용해야하는지 이해하지 못한다. intro.jsp (1) 및 booksList.jsp (2)의 두 페이지가 있습니다. 각 페이지마다 하나의 컨트롤러 클래스를 만들었습니다. 첫 번째 페이지에는 두 번째 페이지를 여는 버튼이 있습니다.

<form method="GET" action="/request-list">
        <input type="submit"/>
</form>

첫 번째 질문은 :이 버튼의 정확성에 대해 확실하지 않습니다. 잘 작동하지만이 버튼을 누른 후 물음표가 나타납니다.

두 번째 질문은 다음과 같습니다. 해당 버튼을 누르면 다음 주석이있는 메소드가 호출됩니다 (두 번째 페이지의 컨트롤러).

@RequestMapping(value = "/books")
@Controller
public class BooksListController {

   @RequestMapping
   public String booksList() {
      return "jsp/books/booksList";
   }
}

이 방법으로 무엇을 반환해야합니까? 다시 말해 첫 페이지에서 두 번째 페이지로 어떻게 이동할 수 있습니까?

그 결과가 동일하다는 것을 알았습니다.이 모든 문자열은 저에게 동일한 페이지를주었습니다 (2 페이지가 열렸습니다).  어떤 경우에는 "redirect", "forward", "page.jsp"를 사용해야합니까?

또한 게시물 / 리디렉션 / 기사 가져 오기를 읽었습니다. POST 메서드 처리 후 "리디렉션"사용해야합니까 ??

해결법

  1. ==============================

    1.GET http 메서드를 사용하기 때문에 물음표가 삽입됩니다. POST 메서드를 사용하여 요청 페이로드의 데이터를 전달해야합니다.

    GET http 메서드를 사용하기 때문에 물음표가 삽입됩니다. POST 메서드를 사용하여 요청 페이로드의 데이터를 전달해야합니다.

    return "redirect:/books";
    

    http 응답을 해석하고 자동으로 리디렉션 URL을 호출하는 클라이언트 (브라우저)로 돌아갑니다.

    return "jsp/books/booksList";
    

    JSP를 처리하고 클라이언트에게 HTML을 보냅니다.

    return "forward:/books";
    

    요청을 전송하고 서버 측에서 직접 URL을 호출합니다.

    어느 것을 사용할지 결정하려면 각 접근법의 몇 가지 측면을 고려해야합니다.

    앞으로 : 클라이언트 브라우저가 복잡하지 않고 브라우저가 원본 URL을 표시하고 요청이 전달 된 URL을 통해 전송됩니다.

    리디렉션 : 속도가 느리고 클라이언트 브라우저가 관련되어 있고 브라우저에 리디렉션 된 URL이 표시되면 리디렉션 된 URL에 대한 새 요청이 만들어집니다.

  2. from https://stackoverflow.com/questions/28697681/spring-mvc-controller-what-is-the-difference-between-return-forward-return by cc-by-sa and MIT license