Passer des variables à partir de servlet pour jsp
Comment puis-je transmettre une variable de servlet pour jsp?
setAttribute
et getAttribute
ne fonctionne pas pour moi 🙁
- Un exemple de code aiderait
Vous devez vous connecter pour publier un commentaire.
Vous pouvez définir toutes les valeurs dans l'objet de la réponse avant de forwaring la demande de la jsp. Ou vous pouvez mettre vos valeurs dans un bean de session et accéder à la page jsp.
Il ne pourra pas travailler quand:
Vous rediriger la réponse à une nouvelle demande par
response.sendRedirect("page.jsp")
. Le nouvellement créé objet de demande ne sera évidemment pas contenir les attributs de plus et ils ne seront pas accessibles dans l'redirigé JSP. Vous devez en avant, plutôt que de les rediriger. E. g.Vous accédez à l'envers ou à l'aide de la mauvais nom. En supposant que vous avez défini à l'aide du nom
"name"
, alors vous devriez être en mesure d'y accéder dans le transmis page JSP comme suit:${name}
pas<%out.println(${name});%>
.Manière Simple que j'ai trouvé est,
Dans le servlet:
Vous pouvez définir la valeur et de le transmettre à JSP comme ci-dessous
Pour Les Accueillir.jsp que vous pouvez obtenir les valeurs par
(ou) directement u peut appeler
Utilisation
et puis
Alors il sera accessible dans la page JSP.
Comme une note de côté - dans votre jsp éviter d'utiliser du code java. L'utilisation de JSTL.
getServletContext()
et pasrequest
?En plus de l'aide d'un attribut pour transmettre des informations à partir d'une servlet à une page JSP, on peut aussi passer une paramètre. Qui se fait tout simplement par une redirection vers une URL qui spécifie la page JSP en question, et l'ajout de la normale de passage de paramètre-par-le-URL mécanisme.
Un exemple. La partie pertinente de la servlet code:
Et la partie pertinente de la page JSP
example.jsp
:C'est une servlet code qui contiennent une chaîne de caractères une variable. la valeur de a est d'obtenir à partir d'une page html avec le formulaire.
puis définissez la variable dans l'objet de requête. ensuite, passer à de jsp en utilisant
forward
etrequestdispatcher
méthodes.en jsp suivre ces étapes ci-dessous dans le programme
Vous pouvez également utiliser RequestDispacher et de transmettre les données ainsi que la page jsp que vous voulez.
Lors de l'utilisation de
setAttribute
etgetRequestDispatcher
surdoGet
, assurez-vous que vous accédez à vos pages avec le urlPatterns ("/login" par exemple) défini pour votre servlet. Si vous le faites avec "/login.jsp" votredoGet
de ne pas être appelé afin qu'aucun de vos attributs seront disponibles.Si vous utilisez l'Action, Actionforward moyen de processus d'affaires de la logique et de la page suivante pour afficher, vérifiez si la redirection est appelé. Comme beaucoup d'autres ont souligné, la redirection ne conservez l'original de votre demande, car il est fondamentalement vous forçant à faire une nouvelle demande de chemin désigné. Si la valeur définie dans la demande d'origine aura disparu si vous utilisez la redirection au lieu de requestdispatch.