Maison  >  Article  >  Java  >  Plusieurs méthodes de saut de page dans la servlet Java

Plusieurs méthodes de saut de page dans la servlet Java

巴扎黑
巴扎黑original
2017-05-21 14:13:061612parcourir

La servlet Java dispose de plusieurs méthodes de saut de page. Les amis qui en ont besoin peuvent se référer à

Servlet :

Bien sûr, dans la servlet, les sauts généraux se produisent dans doGet, doPost et d'autres méthodes. dans.

1) Méthode de redirection

response.sendRedirect("/a.jsp");

Le chemin de la page est un chemin relatif. sendRedirect peut accéder à n'importe quelle page, sans nécessairement se limiter à cette application Web, telle que :

response.sendRedirect("http://www.jb51.net");

L'adresse du navigateur la barre change après le saut.

Si vous souhaitez transmettre la valeur de cette manière, vous pouvez uniquement apporter le paramètre dans l'URL ou le mettre dans la session. Vous ne pouvez pas utiliser request.setAttribute pour le transmettre.

2) méthode de transfert

RequestDispatcher dispatcher = request.getRequestDispatcher("/a.jsp");

dispatcher .forward(request, réponse);

Le chemin de la page est un chemin relatif. La méthode forward ne peut accéder qu'aux pages de cette application Web.

La barre d'adresse du navigateur ne changera pas après le saut.

Utilisez cette méthode pour sauter. Il existe trois méthodes pour transmettre des valeurs : paramètre, session, request.setAttribute dans l'url

JSP :

1) réponse.sendRedirect ( );

est identique à la réponse.sendRedirect() de la servlet.

Out.flush() n'est pas autorisé avant cette instruction. S'il y en a, une exception se produira :

java.lang.IllegalStateException : impossible de sendRedirect() une fois les données validées. le client .

at com.caucho.server.connection.AbstractHttpResponse.sendRedirect(AbstractHttpResponse.java:558)

...

La barre d'adresse du navigateur change après le jump

Si vous souhaitez passer à un autre hôte, après le saut, les instructions qui suivent cette instruction continueront à s'exécuter, comme si un nouveau thread était ouvert, mais l'opération de réponse n'a aucun sens

;

Si vous souhaitez accéder au même hôte. L'instruction qui suit cette instruction ne sautera pas tant que l'exécution n'est pas terminée

2) réponse.setHeader("Location","");

Cette instruction n'est pas autorisée avant qu'il n'y ait out.flush(). S'il y en a, la page ne sautera pas.

La barre d'adresse du navigateur change après le saut

Le saut n'aura lieu que lorsque l'instruction suivant cette instruction sera exécutée

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn