Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1451 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [JSP/Servlet] Comment envoyer une string sans passer par des javabean

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[JSP/Servlet] Comment envoyer une string sans passer par des javabean

n°1353248
Lenoiche
Posté le 25-04-2006 à 01:35:08  profilanswer
 

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
 

mood
Publicité
Posté le 25-04-2006 à 01:35:08  profilanswer
 

n°1353249
benou
Posté le 25-04-2006 à 01:42:18  profilanswer
 

tu fais un request.setAttribute("id", "valeur" ) dans la servlet et un  
String id = (String) request.getAttribute("id" ) dans la jsp ...


---------------
ma vie, mon oeuvre - HomePlayer
n°1353385
Lenoiche
Posté le 25-04-2006 à 11:15:30  profilanswer
 

Merci benou mais j ai encore un petit soucis
 
Voila ce que j'ai du cote serveur

Code :
  1. String s_etat_ajout="ca marche ou pas";
  2. session.setAttribute("reponse",s_etat_ajout);


 
Voila ce que j ai du cote client

Code :
  1. <% String name = (String) request.getAttribute("reponse" ); %>
  2. <%=name%>


 
ca compile sans erreur, mais par contre la JSP me dit que la valeur de la string est NULL

n°1353417
brasseld
Posté le 25-04-2006 à 11:38:01  profilanswer
 

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

n°1353550
Bidem
Posté le 25-04-2006 à 13:35:10  profilanswer
 

Lenoiche a écrit :

Merci benou mais j ai encore un petit soucis
 
Voila ce que j'ai du cote serveur

Code :
  1. String s_etat_ajout="ca marche ou pas";
  2. session.setAttribute("reponse",s_etat_ajout);


 
Voila ce que j ai du cote client

Code :
  1. <% String name = (String) request.getAttribute("reponse" ); %>
  2. <%=name%>


 
ca compile sans erreur, mais par contre la JSP me dit que la valeur de la string est NULL


 
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

Message cité 1 fois
Message édité par Bidem le 25-04-2006 à 13:37:41
n°1353654
brasseld
Posté le 25-04-2006 à 15:20:46  profilanswer
 

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...  :pt1cable:  

n°1353688
Lenoiche
Posté le 25-04-2006 à 15:49:21  profilanswer
 

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 :
  1. ServletContext sc = this.getServletContext();
  2. RequestDispatcher rd = sc.getRequestDispatcher("/AjoutReponse.jsp" );
  3. rd.forward(req,resp);


 
 
et enfin pour mon probleme je l'ai resolu grace a vos indications

Code :
  1. String s_etat_ajout="ca marche ou pas";       
  2. session.setAttribute("reponse",s_etat_ajout);


 

Code :
  1. <% String name = (String) session.getAttribute("reponse" ); %>
  2. <%=name%>


 
merci a tous

n°1353730
Bidem
Posté le 25-04-2006 à 16:29:58  profilanswer
 

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.
 
 

n°1353796
Lenoiche
Posté le 25-04-2006 à 17:34:52  profilanswer
 

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
 

n°1353810
Bidem
Posté le 25-04-2006 à 18:09:52  profilanswer
 

Lenoiche a écrit :

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


 
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

mood
Publicité
Posté le 25-04-2006 à 18:09:52  profilanswer
 

n°1354571
Lenoiche
Posté le 26-04-2006 à 17:39:40  profilanswer
 

merci a tous pour votre aide
mon programme tourne maintenant :D
 
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [JSP/Servlet] Comment envoyer une string sans passer par des javabean

 

Sujets relatifs
[C#] String contient string ?Comparaison string avec un caractère ..... [REGLE]
Comment compiler un .Java (servlet) dans un projet Tomcat ?formulaire sans passer par outlook
Passer d'une séquence à une autre avec un boutonSocket, envoyer autre chose que du texte?
Passer d'une vidéo à une imageenvoyer des données PHP vers FLASH
JSP/JSTL et passage de variables...(débutant)Conversion String en Hexa ("1F") vers byte
Plus de sujets relatifs à : [JSP/Servlet] Comment envoyer une string sans passer par des javabean


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR