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

  FORUM HardWare.fr
  Programmation
  Java

  Utiliser une servlet dans une jsp

 


 Mot :   Pseudo :  
 
 Page :   1  2  3
Page Précédente
Auteur Sujet :

Utiliser une servlet dans une jsp

n°185089
Tamahome
⭐⭐⭐⭐⭐
Posté le 29-07-2002 à 11:47:20  profilanswer
 

...ou du moins le code qu'il contient...
 
Comment on peut faire separer le HTML inclus dans la servlet pour la faire ressortir dans la jsp, et ainsi separer la presentation du traitement des donnees... ?

mood
Publicité
Posté le 29-07-2002 à 11:47:20  profilanswer
 

n°185106
darklord
You're welcome
Posté le 29-07-2002 à 12:05:08  profilanswer
 

bin la JSP s'occupe de l'affichage et pompe ses infos dans la requeste ou la session que la servlet a préalablement remplis.
 
Typiuqmenet le pattern est le suivant:
 
JSP -> formulaire pour demander les apparts de moins de 500euros dans la région parisienne
Requete à une servlet qui prend les params du formulaires, fais une requete en BD et attache le résultat à la requete. Ensuite cette servlet forward le processing à une autre JSP (JSP2)
JSP2 va pomper les infos dans la requete et affiche le résultat à l'utilisateur.
 
 
Pour l'étape intermédiaire tu devrais utilise des helpers ou des beans. Logiquement le but de la servlet est de router (dispatcher) les infos au bon endroit suivant le type de requete.
 
Est ce clair?


---------------
Just because you feel good does not make you right
n°185109
--greg--
Posté le 29-07-2002 à 12:09:40  profilanswer
 

darklord ça marchera pas ton truc

n°185157
darklord
You're welcome
Posté le 29-07-2002 à 13:46:05  profilanswer
 

ah non? Et pourquoi ça cher ami?


---------------
Just because you feel good does not make you right
n°185158
--greg--
Posté le 29-07-2002 à 13:47:32  profilanswer
 

DarkLord a écrit a écrit :

ah non? Et pourquoi ça cher ami?



paske ça existe pas les apparts en dessous de 500? en r.p
 :D

n°185163
Tamahome
⭐⭐⭐⭐⭐
Posté le 29-07-2002 à 13:48:51  profilanswer
 

DarkLord: oui, ok, mais en fait j'ai deja fait ma servlet (elle genere du HTML elle meme) et maintenant je voudrais separer le html "dynamiquement cree" pour la mettre dnas une jsp (dans la 2eme JSP donc, puisque la 1ere me serivirait que pour appeller ma servlet si j'ai biem compris...)
 
Est-ce que j' ai bon:
 
JSP1 :
 

Code :
  1. <html>
  2. <!--
  3.   Appelle la servlet
  4. -->
  5. <body bgcolor="white">
  6. <%@ page errorPage="error.jsp" %>
  7. <!-- Forward to a servlet -->
  8. <jsp:forward page="/ma_servlet" />
  9. </html>


 
Servlet: Contient la programmation
JSP2: Contient le HTML genere dynamiquement grace aux informations renvoyes par ma servlet...

n°185164
Tamahome
⭐⭐⭐⭐⭐
Posté le 29-07-2002 à 13:49:22  profilanswer
 

--greg-- a écrit a écrit :

paske ça existe pas les apparts en dessous de 500? en r.p
 :D  



[:tete_de_mort]

n°185170
HappyHarry
Posté le 29-07-2002 à 13:52:36  profilanswer
 

Tamahome a écrit a écrit :

 [:tete_de_mort]  




 
oh tu tapes pas greg ! pour une fois qu'il est drole !  :D

n°185172
--greg--
Posté le 29-07-2002 à 13:53:06  profilanswer
 

HappyHarry a écrit a écrit :

 
 
oh tu tapes pas greg ! pour une fois qu'il est drole !  :D  



[:tete_de_mort]

n°185175
Tamahome
⭐⭐⭐⭐⭐
Posté le 29-07-2002 à 13:54:12  profilanswer
 

pourrisez pas mon topic svp  [:shiryu]

mood
Publicité
Posté le 29-07-2002 à 13:54:12  profilanswer
 

n°185177
HappyHarry
Posté le 29-07-2002 à 13:54:41  profilanswer
 

--greg-- a écrit a écrit :

[:tete_de_mort]




 
 :D

n°185186
darklord
You're welcome
Posté le 29-07-2002 à 14:02:48  profilanswer
 

--greg-- a écrit a écrit :

paske ça existe pas les apparts en dessous de 500? en r.p
 :D  




 
MDR, j'ai cru que tu mettais en doute mon post, petit scarabée :D


---------------
Just because you feel good does not make you right
n°185189
darklord
You're welcome
Posté le 29-07-2002 à 14:04:47  profilanswer
 

Tamahome a écrit a écrit :

DarkLord: oui, ok, mais en fait j'ai deja fait ma servlet (elle genere du HTML elle meme) et maintenant je voudrais separer le html "dynamiquement cree" pour la mettre dnas une jsp (dans la 2eme JSP donc, puisque la 1ere me serivirait que pour appeller ma servlet si j'ai biem compris...)
 
Est-ce que j' ai bon:
 
JSP1 :
 

Code :
  1. <html>
  2. <!--
  3.   Appelle la servlet
  4. -->
  5. <body bgcolor="white">
  6. <%@ page errorPage="error.jsp" %>
  7. <!-- Forward to a servlet -->
  8. <jsp:forward page="/ma_servlet" />
  9. </html>






non. Déjà une servlet ne dois pas en principe générer du html. Ensuite ton code pour appeler ta servlet est faux je dirai. Typiquement si tu es dans le cas d'un formulaire, il te suffit de faire un form classique et passer l'uRL de ta servlet dans le champ action.
 
Les données vont donc etre envoyées à la servlet qui fait te renvoyer 3045848238585 appartements sur paris de - de 500Euros et tu pourras utiliser le requestdispatcher pour forwarder la requete à ta JSP 2.
 
Ca ferait une bonne idée d'article ca tiens, je note :)
 
C'est plus clair ou pas?
Servlet: Contient la programmation
JSP2: Contient le HTML genere dynamiquement grace aux informations renvoyes par ma servlet...


Message édité par darklord le 29-07-2002 à 14:05:07

---------------
Just because you feel good does not make you right
n°185212
Tamahome
⭐⭐⭐⭐⭐
Posté le 29-07-2002 à 14:17:43  profilanswer
 

DarkLord a écrit a écrit :

 
non. Déjà une servlet ne dois pas en principe générer du html. Ensuite ton code pour appeler ta servlet est faux je dirai. Typiquement si tu es dans le cas d'un formulaire, il te suffit de faire un form classique et passer l'uRL de ta servlet dans le champ action.
 
Les données vont donc etre envoyées à la servlet qui fait te renvoyer 3045848238585 appartements sur paris de - de 500Euros et tu pourras utiliser le requestdispatcher pour forwarder la requete à ta JSP 2.
 
Ca ferait une bonne idée d'article ca tiens, je note :)
 
C'est plus clair ou pas?
Servlet: Contient la programmation
JSP2: Contient le HTML genere dynamiquement grace aux informations renvoyes par ma servlet...
 




 
Hmmmm, je pensais que ca serait plus simple. Prenons un exemple:
 
Admettons que j'ai une servlet toute bete, comme ca:
http://www.apl.jhu.edu/~hall/java/Servlet-Tutorial/

Code :
  1. import java.io.*;
  2. import javax.servlet.*;
  3. import javax.servlet.http.*;
  4. public class HelloWWW extends HttpServlet {
  5.   public void doGet(HttpServletRequest request,
  6.                     HttpServletResponse response)
  7.       throws ServletException, IOException {
  8.     response.setContentType("text/html" );
  9.     PrintWriter out = response.getWriter();
  10.     out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " +
  11.                                         "Transitional//EN\">\n" +
  12.                 "<HTML>\n" +
  13.                 "<HEAD><TITLE>Hello WWW</TITLE></HEAD>\n" +
  14.                 "<BODY>\n" +
  15.                 "<H1>Hello WWW</H1>\n" +
  16.                 "</BODY></HTML>" );
  17.   }
  18. }


 
Comment dois je m'y prendre pour virer le HTML de la servlet, afin de la mettre dans une JSP ?
 
En gros, il faudrait que je me retrouve avec ca dans ma servlet:

Code :
  1. import java.io.*;
  2. public class HelloWWW {
  3.  
  4.   public String toto()
  5.   {
  6.      return "Hello World";
  7.   }
  8. }


 
Et ca dans ma JSP:

Code :
  1. <!DOCTYPE HTML PUBLIC "-/W3C/DTD HTML 4.0 Transitional/EN">
  2. <HTML>
  3. <HEAD><TITLE> <%HelloWWW.toto()%> </TITLE></HEAD>
  4. <BODY>
  5. <H1> <%HelloWWW.toto()%> </H1>
  6. <BODY></HTML>


 
Je me doute que le code pour la JSP est faux, mais je pensais qu'on pouvait faire dans ce sens la: appeller une methode d' une classe dans un JSP...


Message édité par Tamahome le 29-07-2002 à 14:20:43
n°185214
lorill
Posté le 29-07-2002 à 14:20:48  profilanswer
 

on peut, mais dans ce cas ta servlet ne sert a rien.
 

Code :
  1. class Hello
  2. {
  3.   public static String hello()
  4.   {
  5.      return "Hello world";
  6.   }
  7. }


 
et dans la jsp
 

Code :
  1. <%@ page import="Hello" %>
  2. Bonjour : <%= Hello.hello() %>

n°185219
Tamahome
⭐⭐⭐⭐⭐
Posté le 29-07-2002 à 14:22:36  profilanswer
 

lorill a écrit a écrit :

on peut, mais dans ce cas ta servlet ne sert a rien.
 

Code :
  1. class Hello
  2. {
  3.   public static String hello()
  4.   {
  5.      return "Hello world";
  6.   }
  7. }


 
et dans la jsp
 

Code :
  1. <%@ page import="Hello" %>
  2. Bonjour : <%= Hello.hello() %>






 
Oui enfin non, la servlet sur laquelle je bosse est bien plus complexe, mais vu qu'elle fonctionne bien comme ca, j'ai pas envie de tout casser lors du passage en JSP. Surtout, j'ai pas envie d'utiliser le JSP pour faire du code (scriptlet...). Mon JSP ne doit faire que du HTML en appellant les methodes de mes classes...
 
Merci en tout cas  [:xp1700]

n°185225
darklord
You're welcome
Posté le 29-07-2002 à 14:28:49  profilanswer
 

bin c'est assez simple
 

Code :
  1. import java.io.*;
  2. import javax.servlet.*;
  3. import javax.servlet.http.*;
  4. private static final msg = "Hello World!";
  5. public class HelloWWW extends HttpServlet {
  6. public void doGet(HttpServletRequest request,
  7.                    HttpServletResponse response)
  8.      throws ServletException, IOException {
  9.      request.setAttribute("msg", msg);
  10.      RequestDispatcher d = request.getRequestDispatcher(/res.jsp" );
  11.      d.forward(request, response);   
  12. }
  13. }


 
et dans res.jsp qui est dans ton répertoire root tu fais
 

Code :
  1. <HTML>
  2. ....
  3. <H1><B><%=request.getAttribute(msg)%></B></H1>


 
un truc du genre. Ensuite tu change cet attribut par des trucs plus complexes comme les résultats d'une recherche, le profil d'un user, etc.
 
(je suis pas sur à 100% du code, faut voir l'api pour confirmer que c'est bon)


---------------
Just because you feel good does not make you right
n°185245
Tamahome
⭐⭐⭐⭐⭐
Posté le 29-07-2002 à 14:43:16  profilanswer
 

DarkLord a écrit a écrit :

bin c'est assez simple
 

Code :
  1. import java.io.*;
  2. import javax.servlet.*;
  3. import javax.servlet.http.*;
  4. private static final msg = "Hello World!";
  5. public class HelloWWW extends HttpServlet {
  6. public void doGet(HttpServletRequest request,
  7.                    HttpServletResponse response)
  8.      throws ServletException, IOException {
  9.      request.setAttribute("msg", msg);
  10.      RequestDispatcher d = request.getRequestDispatcher(/res.jsp" );
  11.      d.forward(request, response);   
  12. }
  13. }


 
et dans res.jsp qui est dans ton répertoire root tu fais
 

Code :
  1. <HTML>
  2. ....
  3. <H1><B><%=request.getAttribute(msg)%></B></H1>


 
un truc du genre. Ensuite tu change cet attribut par des trucs plus complexes comme les résultats d'une recherche, le profil d'un user, etc.
 
(je suis pas sur à 100% du code, faut voir l'api pour confirmer que c'est bon)




 
Mouais mais ca ne me va pas ca :(
On ne peut passer qu'une String avec ca, mais si j'ai un Vector ou une Enumeration par exemple, ben je suis baizou... [:totoz]

n°185250
HappyHarry
Posté le 29-07-2002 à 14:44:40  profilanswer
 

m'a l'air aussi obtus que celui d'hier soir celui la ...  :sarcastic:

n°185252
Tamahome
⭐⭐⭐⭐⭐
Posté le 29-07-2002 à 14:45:31  profilanswer
 

HappyHarry a écrit a écrit :

m'a l'air aussi obtus que celui d'hier soir celui la ...  :sarcastic:  




 
moi ?
 
Desole, je posais juste une qst....

n°185262
El_gringo
Posté le 29-07-2002 à 14:49:56  profilanswer
 

Tamahome a écrit a écrit :

 
 
moi ?
 
Desole, je posais juste une qst....




 
il t'a dit ça :

Citation :


un truc du genre. Ensuite tu change cet attribut par des trucs plus complexes comme les résultats d'une recherche, le profil d'un user, etc.


 
Donc, tu peux surement tout aussi bien faire un setAttribute avec autre chose qu'une String. regarde ds la doc, tu verra bien...

n°185263
darklord
You're welcome
Posté le 29-07-2002 à 14:50:29  profilanswer
 

Tamahome a écrit a écrit :

 
 
Mouais mais ca ne me va pas ca :(
On ne peut passer qu'une String avec ca, mais si j'ai un Vector ou une Enumeration par exemple, ben je suis baizou... [:totoz]  




 
Mais punaise. Qu'est ce que vous avez tous a etre aussi chiant bon sang !!!
 

Citation :


un truc du genre. Ensuite tu change cet attribut par des trucs plus complexes comme les résultats d'une recherche, le profil d'un user, etc.  


 
Avant de raconter N'IMPORTE QUOI, va voir la signature de setAttribute, getAttribute. Ca prend un objet en paramètre. Donc tu peux attacher un tableau de clients, un tableau de profils, une énumération de mes couilles.
 
 :gun:  :gun:  :gun:


---------------
Just because you feel good does not make you right
n°185267
--greg--
Posté le 29-07-2002 à 14:52:24  profilanswer
 

DarkLord a écrit a écrit :

 
 
Mais punaise. Qu'est ce que vous avez tous a etre aussi chiant bon sang !!!
 

Citation :


un truc du genre. Ensuite tu change cet attribut par des trucs plus complexes comme les résultats d'une recherche, le profil d'un user, etc.  


 
Avant de raconter N'IMPORTE QUOI, va voir la signature de setAttribute, getAttribute. Ca prend un objet en paramètre. Donc tu peux attacher un tableau de clients, un tableau de profils, une énumération de mes couilles.
 
 :gun:  :gun:  :gun:  



chuis pas sur que ça vaille la peine. c'est pas comme si leur nombre variait.
A la limite un agregat "PaireDeCouilles" avec deux membres "Couille", et un ou deux booleen pour définir leur etat..

n°185270
benou
Posté le 29-07-2002 à 14:54:46  profilanswer
 

--greg-- a écrit a écrit :

chuis pas sur que ça vaille la peine. c'est pas comme si leur nombre variait.
A la limite un agregat "PaireDeCouilles" avec deux membres "Couille", et un ou deux booleen pour définir leur etat..




:D :D :D

n°185273
--greg--
Posté le 29-07-2002 à 14:55:10  profilanswer
 

daisolaid:)

n°185275
darklord
You're welcome
Posté le 29-07-2002 à 14:55:36  profilanswer
 

[:rofl]  [:yaisse]


---------------
Just because you feel good does not make you right
n°185291
Tamahome
⭐⭐⭐⭐⭐
Posté le 29-07-2002 à 14:59:08  profilanswer
 

au temps pour mo cul, j'avais mal lu l'API :
 
ServletRequest.html#setAttribute(java.lang.String, java.lang.Object)
 
 :jap:

n°185294
lorill
Posté le 29-07-2002 à 14:59:49  profilanswer
 

Tamahome a écrit a écrit :

au temps pour mo cul, j'avais mal lu l'API :
 
ServletRequest.html#setAttribute(java.lang.String, java.lang.Object)
 
 :jap:  




 
s/mal/pas/

n°185308
--greg--
Posté le 29-07-2002 à 15:08:09  profilanswer
 

lorill a écrit a écrit :

 
 
s/mal/pas/



plait-il?

n°185316
HappyHarry
Posté le 29-07-2002 à 15:09:22  profilanswer
 

c une substitution de "mal" par "pas"
 
t nul toi  :D

n°185349
--greg--
Posté le 29-07-2002 à 15:32:29  profilanswer
 

HappyHarry a écrit a écrit :

c une substitution de "mal" par "pas"
 
t nul toi  :D  



spaspas?  :heink:

n°186087
Tamahome
⭐⭐⭐⭐⭐
Posté le 30-07-2002 à 14:46:03  profilanswer
 

j'obtiens un magnifique "null" en lieu et place du "hello world" attendu  :cry:  :cry:  :cry:  
 
J'ai du mettre mes 2 fichiers .class dans \jakarta-tomcat-4.0.3\common\classes et mon .jsp dans C:\jakarta-tomcat-4.0.3\webapps\root\ pour qu'il trouve bien les class a importer... [:totoz]

n°186090
darklord
You're welcome
Posté le 30-07-2002 à 14:47:17  profilanswer
 

vérifie comment tu attaches ta String a la requete et vérifie comment tu la récupère dans ta JSP
 
fais gaffe aussi de pas attacher le mesasge a la requete et la prendre dans la session ou l'inverse :D
 
et sinon montre ton code !


---------------
Just because you feel good does not make you right
n°186143
Tamahome
⭐⭐⭐⭐⭐
Posté le 30-07-2002 à 15:06:51  profilanswer
 

voila ma JSP:
 

Code :
  1. <%@ page import="MaClasse" %>
  2. <%@ page errorPage="error.jsp" %>
  3. <html>
  4. <body bgcolor="white">
  5. Test:
  6. <H1><B><%=request.getAttribute("msg" )%></B></H1>
  7. </html>


 
J'ai aussi essaye avec <%=request.getAttribute(msg)%> en mettant un <% String msg; %> (j'ai aussi essaye avec <%! String msg; %> )
 
Pour la servlet, j'ai repris ton code.
T'es sur que faut pas le mettre dans doPost plutot ?

n°186145
darklord
You're welcome
Posté le 30-07-2002 à 15:07:33  profilanswer
 

euh tu es gentil toi. Tu l'appelle au mois la servlet avant ? Parce que je sais pas si tu es au courant mais c'est la servlet qui intilalise l'attribut "msg"
 
et pour la servlet j'ai dit que il fallait vérifier le code mais si ca compile c'est bon hein :)
 
pour autant que tu y accèdes :D
 
(


Message édité par darklord le 30-07-2002 à 15:08:22

---------------
Just because you feel good does not make you right
n°186147
HappyHarry
Posté le 30-07-2002 à 15:08:32  profilanswer
 

DarkLord a écrit a écrit :

euh tu es gentil toi. Tu l'appelle au mois la servlet avant ?




 
mdr
tu m'as grillé, mais elle me fait bien rire quand meme celle la

n°186150
darklord
You're welcome
Posté le 30-07-2002 à 15:10:03  profilanswer
 

Tamahome a écrit a écrit :

Pour la servlet, j'ai repris ton code.
T'es sur que faut pas le mettre dans doPost plutot ?




 
Déjà je n'ai jamais dit que c'était du code a prendre tel quel. J'ai repris ton exemple tout con du début de ce thread. Donc si tu accèdes à la servlet en Post c'est à toi de le changer et pas à me demander "si je suis sur"
 


---------------
Just because you feel good does not make you right
n°186155
Tamahome
⭐⭐⭐⭐⭐
Posté le 30-07-2002 à 15:11:12  profilanswer
 

Par contre dans ma servlet j'ai ca:
 

Code :
  1. public static String TestEV()
  2.     {
  3.         return "Servlet + JSP - V0.3)";
  4.     }


 
et si je met ca dans ma JSP, ca marche:

Code :
  1. <%= MaClasse.TestEV() %>


 
Donc en fait, ils arrivent bien a communiquer entre eux (JSP/Servlet)...
 
C'est le requestDispatcher qui semble pas etre bon...j'ai pas l'impression que ce soit un pbm de path pourtant...


Message édité par Tamahome le 30-07-2002 à 15:17:23
n°186160
Tamahome
⭐⭐⭐⭐⭐
Posté le 30-07-2002 à 15:13:55  profilanswer
 

DarkLord a écrit a écrit :

euh tu es gentil toi. Tu l'appelle au mois la servlet avant ? Parce que je sais pas si tu es au courant mais c'est la servlet qui intilalise l'attribut "msg"
 
et pour la servlet j'ai dit que il fallait vérifier le code mais si ca compile c'est bon hein :)
 
pour autant que tu y accèdes :D
 
(




 
Ma servlet etant autonome (elle genere deja des pages HTML toute seule) si je l'appelle ca me genere donc les pages HTML, et donc ca me masquerai un eventuel affichage de mon JSP...

n°186165
darklord
You're welcome
Posté le 30-07-2002 à 15:15:45  profilanswer
 

Dis donc mon ami. Tu es sur que tu es là pour écouter les autres ou pour raconter n'importe quoi.
 
Tu t'avances sur des choses que tu ne maitrise pas et tu le prouve en racontant des conneries
 
Donc retour à la case départ :hello:
 
Edit : la pseudo servlet que j'ai écrite ne génère pas d'HTML. Elle est invoquée, mets le champ msg dans la requete et forwarde la requete à une JSP pour qu'elle s'occupe de l'affichage. C'est comme ca que ca doit fonctionner! et pas avec des statics machin chose!  :fou:


Message édité par darklord le 30-07-2002 à 15:16:44

---------------
Just because you feel good does not make you right
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3
Page Précédente

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

  Utiliser une servlet dans une jsp

 

Sujets relatifs
[PHP] Conseil de script à utiliser pour une gallerie photos...Challenge : Comment utiliser une dll créée en VB avec VC++ ?
[JSP/Servlet] rafraichissement d'une image[VB] utiliser Grid32.ocx de VB5 dans VB6
[servlet/JSP] afficher des images lues par ma servlet (ou ma JSP)[Servlet/jsp] récupérer l'URI de base d'une web-app
[Jsp/Servlet] Problème lors du premier forward depuis ma servletUtiliser les fonctions ICQ sous PHP
Quel script PHP utiliser pour faire des logs/stats sur son site ?[JSP - Servlet] Maximum d'info pour créer un forum
Plus de sujets relatifs à : Utiliser une servlet dans une jsp


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