Comment transférer la sortie du servlet vers la page jsp?affichage du résultat du servlet en jsp page
Cela signifie que le résultat sera affiché dans la page JSP.
Comment transférer la sortie du servlet vers la page jsp?affichage du résultat du servlet en jsp page
Cela signifie que le résultat sera affiché dans la page JSP.
Pour transmettre une demande/réponse de d'un servlet à quelque chose d'autre (par exemple JSP), vous voulez regarder la classe RequestDispatcher
. La classe ServletContext a une méthode pour obtenir un répartiteur, qui peut être appelée depuis une servlet.
Par exemple (au sein de la méthode doPost
/doGet
d'un servlet):
RequestDispatcher rd = getServletConfig().getServletContext()
.getRequestDispatcher("/jsp/myfile.jsp").forward(request,response);
Normalement, vous ne pas utiliser un servlet pour générer une sortie HTML. Vous utilisez normalement JSP/EL pour cela. L'utilisation de out.write
et de consorts pour diffuser du contenu HTML est considérée comme une mauvaise pratique. Mieux utiliser les attributions de requête.
Par exemple:
protected void doGet(HttpServletRequest request, HttpServletResponse response) {
Object data = "Some data, can be a String or a Javabean";
request.setAttribute("data", data);
request.getRequestDispatcher("/WEB-INF/page.jsp").forward(request, response);
}
Plan dans web.xml sur un <url-pattern>
de par exemple /page
. Placez le JSP au /WEB-INF
pour empêcher l'accès direct. Ensuite, dans le JSP, vous pouvez utiliser EL (Expression Language) pour accéder aux attributs scope:
<p>The data from servlet: ${data}</p>
Appelez le servlet par http://example.com/context/page
. Aussi simple que cela. De cette façon, vous contrôlez la sortie et la présentation à un endroit, le JSP.
Que Q.it fonctionne – pavan
getServletConfig().getServletContext()
.getRequestDispatcher("/jsp/myfile.jsp").forward(request,response);
est le type VOID
, il ne peut pas revenir RequestDispatcher
e.
Répondez-vous à une autre question? – SiKing
@SiKing Ceci est un commentaire pour répondre http://stackoverflow.com/a/1824967/188107 ci-dessus. FWIW c'est même un commentaire marginalement utile bien qu'une modification serait plus appropriée. J'ai essayé de le signaler mais ça a été contesté ... – musiKk
C'est exactement le contraire de ce que demande OP. – schlingel
Impossible de voir comment cela est vrai ... – inkredibl
Problème: Vous êtes dans une servlet et vous voulez rendre un JSP spécifique. Solution: Inclure le résultat du servlet dans la JSP. (Quoi?) Mais ce n'est pas ce que je veux. Je veux envoyer l'utilisateur après une action spécifique à un JSP spécifique. Cela peut être le même ou ils peuvent différer en ce qui concerne les paramètres (page d'erreur, page de succès, etc.) – schlingel