Comment envoyer une string sans passer par des javabean [JSP/Servlet] - Java - Programmation
Marsh Posté le 25-04-2006 à 01:42:18
tu fais un request.setAttribute("id", "valeur" ) dans la servlet et un
String id = (String) request.getAttribute("id" ) dans la jsp ...
Marsh Posté le 25-04-2006 à 11:15:30
Merci benou mais j ai encore un petit soucis
Voila ce que j'ai du cote serveur
Code :
|
Voila ce que j ai du cote client
Code :
|
ca compile sans erreur, mais par contre la JSP me dit que la valeur de la string est NULL
Marsh Posté le 25-04-2006 à 11:38:01
Oui, parceque du côté du serveur, le setAttribute se fait sur la session alors que dans ton client, tu essaies de le récupérer via ton request
Marsh Posté le 25-04-2006 à 13:35:10
Lenoiche a écrit : Merci benou mais j ai encore un petit soucis
|
Ici il n'y a pas de côté "serveur" et "client". en fait la servlet et la jsp sont traitées côté serveur.
le problème vient du fait que pour passer de ta servlet à la jsp, dans la servlet, tu fais surement un request.sendRedirect(<url de la jsp> ).
Dans ce cas la jsp ne reçoit pas la même instance de HttpRequest
Tu peux soit faire un forward soit mettre ta chaine en session (et ne pas oublier de l'enlever dès que tu n'en as plus besoin)
EDIT : +1 sur ce qu'a dit brasseld
Marsh Posté le 25-04-2006 à 15:20:46
Bidem a écrit : Ici il n'y a pas de côté "serveur" et "client". en fait la servlet et la jsp sont traitées côté serveur. |
C'est vrai ça, pourquoi j'ai dis ça moi ? Surement parceque je venais de lire ces deux termes dans le post précédent...
Marsh Posté le 25-04-2006 à 15:49:21
oui excusez moi , j ai fait un amlagame
pour moi servlet, traitement "metier" du cote serveur
et en fait la JSP , pour moi c etait l affichage du cote client d'ou mon erreur ... (d ailleur je me pose la question, la relation exact client serveur ici , ca sera le navigateur WEB (le client) et la JSP/Servlet (Serveur) ??)
bidem> je ne comprends pas ce que tu veux dire par enlever la chaine en session
voici le code que j utilise pour envoyer des informations de la servlet a la JSP
Code :
|
et enfin pour mon probleme je l'ai resolu grace a vos indications
Code :
|
Code :
|
merci a tous
Marsh Posté le 25-04-2006 à 16:29:58
Vu que tu fais un forward tu devrais passer par la requette plutot que par la session.
Petit rappel sur la différence entre un forward et un sendRedirect :
- forward : c'est un mécanisme qui permet au serveur d'appli de transférer une requette d'une servlet (appellons la "servletMetier" ) à une autre URL (exemple : "servletAffichage" ).
C'est transparent du point de vue du navigateur (le navigateur fait une requette et reçoit une réponse). Concrètement, l'objet request reçu dans la servletAffichage sera le même que celui qu'on avait dans servletMetier.
- sendRedirect : c'est un mécanisme qui permet au serveur d'appli de dire au navigateur client de se rediriger vers une autre URL. Donc ce n'est pas transparent pour le navigateur.
Le navigateur fait une requette et reçoit une réponse spéciale (code HTTP 303 en général) qui fait qu'il envoit une 2ème requette vers l'url spécifiée dans le sendRedirect.
Marsh Posté le 25-04-2006 à 17:34:52
merci bidem pour ces precisions, j arrive a mieux comprendre
tu parles de "servletAffichage" , ca correspondrai a une JSP ?
parce que j ai un doute sur la definition des termes, la servlet serais le traitement "metier" et la JSP s occuperais de l affichage.
l interet des 2 methodes :
le forwad cache l adresse URL au navigateur contrairement au sendDirect ??
sinan j vois pas
Marsh Posté le 25-04-2006 à 18:09:52
Lenoiche a écrit : merci bidem pour ces precisions, j arrive a mieux comprendre |
Une jsp est en fait une servlet.
Les jsp sont transformées en .java d'une classe héritant indirectement de HttpServlet.
Et oui, on peut dire que le forward a pour conséquence de cacher l'url de la cible au navigateur car le navigateur affiche dans la barre d'adresse l'url qu'il a utilisé pour récupérer la page en cours.
=> dans le cas du Redirect, c'est la 2ème url qui s'affiche
Marsh Posté le 26-04-2006 à 17:39:40
merci a tous pour votre aide
mon programme tourne maintenant
Marsh Posté le 25-04-2006 à 01:35:08
Bonjour tout le monde
Je souhaiterais envoyer une string d'une servlet vers une JSP. J'ai vu comment faire en passant par une javabean, mais ca serait dommage de me compliquer la vie en redefinissant une structure.
Ha oui et je voudrait eviter de passer par un PrintWriter
merci de votre aide