Spring MVC Controller: quelle est la différence entre "forward forward", "return redirect" et "return jsp file"

Je ne comprends pas ce que je dois utiliser.
J'ai deux pages - intro.jsp(1) et booksList.jsp(2). Pour chaque page, j'ai créé une Classe de Contrôleur.
La première page a bouton qui ouvre une deuxième page:

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

La première question est: je ne suis pas sûr de l'exactitude de ce bouton. Il fonctionne bien, mais j'ai une question marque après avoir appuyé sur ce bouton.

La deuxième question est: Lorsque j'appuie sur ce bouton, la méthode avec l'annotation suivante est appelé (Contrôleur de la deuxième page):

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

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

Que dois-je retourner par cette méthode? En d'autres termes comment puis-je sauter de la première page à la seconde?

  1. return "redirect:/books"; returns http://localhost:8080/books?
  2. return "jsp/books/booksList"; returns http://localhost:8080/request-list?
  3. return "forward:/books"; returns http://localhost:8080/request-list?

Je vois que le résultat est le même: tous ces Cordes m'a donné la même page (page 2 a été ouvert).
Dans quels cas utiliser est "redirection", "en avant", "la page.jsp"?

Aussi j'ai lu Post/Redirect/Obtenir de l'article. Dois-je utiliser "rediriger" après avoir suivi une méthode de manipulation??

source d'informationauteur Argamidon