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

  FORUM HardWare.fr
  Programmation
  Java

  [jsp] vous pensez quoi de mon code ???

 


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

[jsp] vous pensez quoi de mon code ???

n°491160
bibidec
Posté le 19-08-2003 à 14:09:49  profilanswer
 

a


Message édité par bibidec le 07-03-2005 à 16:08:45
mood
Publicité
Posté le 19-08-2003 à 14:09:49  profilanswer
 

n°491163
darklord
You're welcome
Posté le 19-08-2003 à 14:13:49  profilanswer
 

En ce qui concerne le JavaBean:
 

  • Il doit implémenter au pire java.io.Serializable
  • Il ne doit contenir *que* des données et rien d'autre. En particulier il ne doit pas contenir la logique permettant d'obtenir les données. C'est le role d'une classe de type helper ou factory
  • Le nom de l'objet n'est pas intuitif
  • Tu utilises en interne un tableau à deux dimensions avec un getter unique. Bien que ce soit correct d'un point de vue théorique, ne penses tu pas que tu pourrais utiliser une structure plus complexe, te permettant de récupérer des informations plus pertinentes dans ta JSP (ca t'éviterai nottamenet de jouer avec deux indices et ce genre de crasse)
  • Tu initalises ton tableau a 200*10. Est ce que ton tableau aura tjrs cette taille ou est ce une taille de sécurité? Si tu ne connais pas par avant la taille d'une structure, utilise un container dynamique telle qu'une ArrayList


Le principal reproche est l'accès à la BD dans le bean et ta représentation a deux dimensions plus que douteuses
 
pour la JSP je laisse la parole aux experts


Message édité par darklord le 19-08-2003 à 14:15:26

---------------
Just because you feel good does not make you right
n°491165
bibidec
Posté le 19-08-2003 à 14:15:06  profilanswer
 

merci beaucoup je prends bonne note !

n°491166
darklord
You're welcome
Posté le 19-08-2003 à 14:15:36  profilanswer
 

bibidec a écrit :

merci beaucoup je prends bonne note !


 
j'ai ajouté des trucs ;)


---------------
Just because you feel good does not make you right
n°491168
lorill
Posté le 19-08-2003 à 14:17:18  profilanswer
 

le html généré n'est pas valide

n°491169
lorill
Posté le 19-08-2003 à 14:18:25  profilanswer
 

DarkLord a écrit :


Le principal reproche est l'accès à la BD dans le bean et ta représentation a deux dimensions plus que douteuses


comme la requete SQL dans le jsp, c'est pas top

n°491175
El_gringo
Posté le 19-08-2003 à 14:22:51  profilanswer
 

Dans ta JSP t'as beaucoup trop de scriptlets (code Java entre <% et %> ).
je te conseil de ne pas utiliser le "out.println"
Genre quand tu voudrais faire ça :

Code :
  1. <%
  2.     if (request.getParameter("ck_listeMembres" ) != null){
  3.       DF_EspacePersoBean paramBean = new DF_EspacePersoBean();
  4.       paramBean.setTabMembres("SELECT * FROM MEMBRE ORDER BY MEMBRE_NOM" );
  5.       String membres[][];
  6.       membres = paramBean.getTabMembres();
  7.       for (int i =0; i < paramBean.getLongueurTab();i++){
  8.         out.println(membres[i][0]);
  9.         out.println(membres[i][1]);
  10.         out.println(membres[i][2]);
  11.         out.println(membres[i][3]);
  12.         out.println(membres[i][4] + "<br>" );
  13.       }
  14.     }
  15.    /*
  16.    La fonction .equals(String) renvoit "true" si une valeur non-nulle est égal à "on"
  17.    La fonction .equals(String) renvoit "false" si un valeur non-nulle n'est pas égale à "on" !
  18.    */
  19.    if (request.getParameter("ck_listeQqch1" ) != null) {
  20.       out.print("<br>Ici il y a quelque chose 1<br><br>" );
  21.    }
  22.    if (request.getParameter("ck_listeQqch2" ) != null) {
  23.       out.print("<br>Ici il y a quelque chose 2<br><br>" );
  24.    }
  25. %>

 
 
fais plutot :

Code :
  1. <%
  2.     if (request.getParameter("ck_listeMembres" ) != null){
  3.       DF_EspacePersoBean paramBean = new DF_EspacePersoBean();
  4.       paramBean.setTabMembres("SELECT * FROM MEMBRE ORDER BY MEMBRE_NOM" );
  5.       String membres[][];
  6.       membres = paramBean.getTabMembres();
  7.       for (int i =0; i < paramBean.getLongueurTab();i++){
  8. %>
  9.         <%=membres[i][0])%>
  10.         <%=membres[i][1])%>
  11.         <%=membres[i][2])%>
  12.         <%=membres[i][3])%>
  13.         <%=membres[i][4])%>
  14.         <br>
  15.       }
  16.     }
  17. <%--
  18.    La fonction .equals(String) renvoit "true" si une valeur non-nulle est égal à "on"
  19.    La fonction .equals(String) renvoit "false" si un valeur non-nulle n'est pas égale à "on" !
  20. --%>
  21. <%
  22.    if (request.getParameter("ck_listeQqch1" ) != null) {
  23. %>
  24.       <br>
  25.       Ici il y a quelque chose 1
  26.       <br><br>
  27. <%
  28.    }
  29.    if (request.getParameter("ck_listeQqch2" ) != null) {
  30. %>
  31.       <br>
  32.       Ici il y a quelque chose 2
  33.       <br><br>
  34. <%
  35.    }
  36. %>


Message édité par El_gringo le 19-08-2003 à 14:24:09
n°491176
bibidec
Posté le 19-08-2003 à 14:23:35  profilanswer
 

lorill a écrit :


comme la requete SQL dans le jsp, c'est pas top


 
ah ok,
 
je pensais qu'il était préférable d'accéder aux données avec mon fichier javabean...
 
okok....
 
mais comment devrais-je procéder ?
je fais l'accès dans un scriptlet ? dans un jsp ?

n°491180
darklord
You're welcome
Posté le 19-08-2003 à 14:26:35  profilanswer
 

bibidec a écrit :


 
ah ok,
 
je pensais qu'il était préférable d'accéder aux données avec mon fichier javabean...
 
okok....
 
mais comment devrais-je procéder ?
je fais l'accès dans un scriptlet ? dans un jsp ?


 
dans une servlet


---------------
Just because you feel good does not make you right
n°491183
bibidec
Posté le 19-08-2003 à 14:29:08  profilanswer
 

DarkLord a écrit :


 
dans une servlet


 
ah d'accord,
 
je fais l'accès à la base dans un servlet.
et je récupère mes données depuis le jsp!
 
donc je n'utilise plus de javabean  ???
 
j'espère que je raisonne juste   :??:  :sweat:

mood
Publicité
Posté le 19-08-2003 à 14:29:08  profilanswer
 

n°491184
darklord
You're welcome
Posté le 19-08-2003 à 14:30:22  profilanswer
 

bibidec a écrit :


 
ah d'accord,
 
je fais l'accès à la base dans un servlet.
et je récupère mes données depuis le jsp!
 
donc je n'utilise plus de javabean  ???
 
j'espère que je raisonne juste   :??:  :sweat:  


 
;) presque !!!
 
Ton javabean est utilisé pour représenter les données. Donc c'est l'objet que tu retournes, depuis ta servlet, à ta JSP
 
Edit: en fait, avec ta servlet tu vas chercher les données, tu remplis un JavaBean avec les données et tu retournes le JavaBean a la JSP. Celle ci utlise les getter pour afficher les infos dans la page web. C'est une traduction simple du modèle MVC


Message édité par darklord le 19-08-2003 à 14:31:23

---------------
Just because you feel good does not make you right
n°491185
El_gringo
Posté le 19-08-2003 à 14:31:02  profilanswer
 

bibidec a écrit :


 
ah d'accord,
 
je fais l'accès à la base dans un servlet.
et je récupère mes données depuis le jsp!
 
donc je n'utilise plus de javabean  ???
 
j'espère que je raisonne juste   :??:  :sweat:  


 
Ben si, pour stocker les données récupérées dans la servlet. Sinon tu ferais pour récupérer les données dans ta JSP !?

n°491186
lorill
Posté le 19-08-2003 à 14:33:46  profilanswer
 

bibidec a écrit :


je fais l'accès dans un scriptlet ? dans un jsp ?


Non, surtout pas, cf les réponses des autres.
Le but, c'est de completement séparer l'acces aux donnée de l'affichage

n°491188
bibidec
Posté le 19-08-2003 à 14:34:23  profilanswer
 

El_gringo a écrit :


 
Ben si, pour stocker les données récupérées dans la servlet. Sinon tu ferais pour récupérer les données dans ta JSP !?


 
oui mais je comprends pas quelque chose alors :
 
quand je suis dans ma servlet je crée une instance et j'appelle ma fonction set.
quand je suis dans ma jsp je suis pas obligé de recréer une instance pour appeler ma fonction get ?
 
merci pour tout vos coups de pouce !
 :)

n°491191
lorill
Posté le 19-08-2003 à 14:35:44  profilanswer
 

bibidec a écrit :


quand je suis dans ma jsp je suis pas obligé de recréer une instance pour appeler ma fonction get ?


non, tu dois la récupérer (par session par exemple) mais pas la recréer.

n°491194
bibidec
Posté le 19-08-2003 à 14:37:51  profilanswer
 

lorill a écrit :


non, tu dois la récupérer (par session par exemple) mais pas la recréer.


 
okok,
 
je suis donc obligé de créer une session pour récupérer ma données envoyer par le servlet à mon bean...
 
d'accord je vais essayer !!!
 :love:

n°491198
lorill
Posté le 19-08-2003 à 14:39:53  profilanswer
 

bibidec a écrit :


je suis donc obligé de créer une session pour récupérer ma données envoyer par le servlet à mon bean...


:non:
 
pour récupérer l'instance du bean garni par la servlet

n°491202
bibidec
Posté le 19-08-2003 à 14:41:25  profilanswer
 

lorill a écrit :


:non:
 
pour récupérer l'instance du bean garni par la servlet


 
okkkkkkkkkkkkkkkkkkkkkkkkkk !
c quand meme compliqué pour faire si peu je trouve non ?
 
enfin si c comme cela qu'il procéder pour avoir quelque chose de propre alors c bien !
 
merci beaucoup

n°491205
lorill
Posté le 19-08-2003 à 14:43:37  profilanswer
 

bof, c'est pas si compliqué que ca...
 
Servlet (Controleur)
--> Recupere tes donnés
--> Garni ton bean (Modele)
--> Mets le bean en session
--> Forwarde vers la JSP (Vue)
 
JSP
--> Lit le bean a partir de la session
--> Fait l'affichage

n°491245
benou
Posté le 19-08-2003 à 15:09:05  profilanswer
 

bibidec a écrit :


je suis donc obligé de créer une session pour récupérer ma données envoyer par le servlet à mon bean...


 :non:  
stocker le bean dans la session est une possibilité.  
 
d'ailleur, ca a du sens que si tu es susceptible de t'en reservir par la suite ... sinon, autant stocker le bean en tant qu'attribut de la requete (request.setAttribute).


---------------
ma vie, mon oeuvre - HomePlayer
n°491248
benou
Posté le 19-08-2003 à 15:11:04  profilanswer
 

bibidec a écrit :


c quand meme compliqué pour faire si peu je trouve non ?


c'est la façon propre de faire les choses ... [:spamafote]
c'est sûr que pour des petits trucs comme ca, c'est lourd mais si tu ne fais pas ca pour des plus gros projet ca fait du code spagheti


---------------
ma vie, mon oeuvre - HomePlayer
n°491255
El_gringo
Posté le 19-08-2003 à 15:12:53  profilanswer
 

Moi je trouve quand même que dans certain cas, la processus est lourd pour pas grand chose. C'est mal, mais il m'est arrivé de lire un fichier dans une JSP.
 
Et sinon, t'avais lu mon 1er post dans la topic, bibidec ?

n°491263
benou
Posté le 19-08-2003 à 15:20:03  profilanswer
 

en utilisant la JSTL, tu pourrais bcp simplifier le codage de ta page jsp.
 
Si tu veux faire les trucs rapidement, tu peux notament écrire ta page qui fait un accès BDD sans écrire un seule ligne de code java. Mais bon, c'est plus propre de passer par le modèle MVC comme ca t'as déjà été expliqué ...
 
doc rapide et bien faite sur la jstl : http://www.javaworld.com/javaworld [...] -jstl.html


---------------
ma vie, mon oeuvre - HomePlayer
n°491265
bibidec
Posté le 19-08-2003 à 15:20:42  profilanswer
 

El_gringo a écrit :

Moi je trouve quand même que dans certain cas, la processus est lourd pour pas grand chose. C'est mal, mais il m'est arrivé de lire un fichier dans une JSP.
 
Et sinon, t'avais lu mon 1er post dans la topic, bibidec ?


 
oui oui,
je l'avais lu!
j'ai également pris note et je mettrai cela en application dès que j'aurai des infos à afficher dans mes scriptlets...
merci bcp...

n°491266
benou
Posté le 19-08-2003 à 15:21:12  profilanswer
 

El_gringo a écrit :

Moi je trouve quand même que dans certain cas, la processus est lourd pour pas grand chose. C'est mal, mais il m'est arrivé de lire un fichier dans une JSP.


logiquement, tu mets un place un modèle MVC que dans les projets de taille déjà importante, sinon tu fais du JSP+JSTL ou JSP+scriplet crados


---------------
ma vie, mon oeuvre - HomePlayer
n°491270
_guigui_
Posté le 19-08-2003 à 15:23:21  profilanswer
 

bibidec a écrit :


 
okkkkkkkkkkkkkkkkkkkkkkkkkk !
c quand meme compliqué pour faire si peu je trouve non ?
 
enfin si c comme cela qu'il procéder pour avoir quelque chose de propre alors c bien !
 
merci beaucoup


bah non c'est pas compliqué, ca simplifie beaucoup la lecture de la JSP, et comme on part du principe que celui qui travaille sur la JSP est un designer HTML ca lui facilite grandement la vie!
 
du coup pour récupérer le bean dans ta jsp tu fais juste ca:

Code :
  1. <jsp:useBean id="paramBean" class="DF_EspacePersoBean" scope="request"/>


(en changeant le nom de ta classe là c'est pas terrible)

n°491275
bibidec
Posté le 19-08-2003 à 15:25:36  profilanswer
 

benou a écrit :


logiquement, tu mets un place un modèle MVC que dans les projets de taille déjà importante, sinon tu fais du JSP+JSTL ou JSP+scriplet crados


 
okok mais attendez !
 
admettons que je dois faire un petit projet pour une boite en jsp, c'est quand meme mieux que je le fasse avec le modèle mvc non ? meme si je mets plus de temps....autant faire qqch de vraiment propre non ?

n°491283
the real m​oins moins
Posté le 19-08-2003 à 15:29:08  profilanswer
 

benou a écrit :


 :non:  
stocker le bean dans la session est une possibilité.  
 
d'ailleur, ca a du sens que si tu es susceptible de t'en reservir par la suite ... sinon, autant stocker le bean en tant qu'attribut de la requete (request.setAttribute).

merci d'insister sur ce point. à priori ça n'a aucun sens de le mettre en session.


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°491286
lorill
Posté le 19-08-2003 à 15:29:59  profilanswer
 

bibidec a écrit :


admettons que je dois faire un petit projet pour une boite en jsp, c'est quand meme mieux que je le fasse avec le modèle mvc non ? meme si je mets plus de temps....autant faire qqch de vraiment propre non ?


si t'as pas de contrainte de temps, oui.
si c'est juste un truc 'jetable', bah  [:sinclaire]

n°491287
benou
Posté le 19-08-2003 à 15:30:20  profilanswer
 

the real moins moins a écrit :

merci d'insister sur ce point. à priori ça n'a aucun sens de le mettre en session.


toutafé, à moins de vouloir gérer une sorte de cache ... mais sinon ca charge la mémoire pour rien pendant 20 minutes ...
surtout un tableau de 200*10, Ca fait quand même du 64Ko par utilisateur pour rien :/


Message édité par benou le 19-08-2003 à 15:41:18

---------------
ma vie, mon oeuvre - HomePlayer
n°491291
_guigui_
Posté le 19-08-2003 à 15:31:32  profilanswer
 

bibidec a écrit :


 
okok mais attendez !
 
admettons que je dois faire un petit projet pour une boite en jsp, c'est quand meme mieux que je le fasse avec le modèle mvc non ? meme si je mets plus de temps....autant faire qqch de vraiment propre non ?


oui c'est mieux, parce que quelle que soit la taille du projet, si tu veux maintenir ton application ca sera quand même plus facile si tu n'as pas trop de code java dans tes JSP.
 
en plus si tu veux debugger ca va etre difficile de faire du pas à pas dans les JSPs (possible ou pas suivant ton IDE, et pas trés lisible s'il sait le faire)


Message édité par _guigui_ le 19-08-2003 à 15:32:04
n°491302
bibidec
Posté le 19-08-2003 à 15:37:46  profilanswer
 

[citation=491283,1]... sinon, autant stocker le bean en tant qu'attribut de la requete (request.setAttribute).
[/citation]
 
Je comprends pas bien ça...

n°491311
the real m​oins moins
Posté le 19-08-2003 à 15:41:48  profilanswer
 

ben y'a un objet "requête" auquel tu peux coller des attributs (n'importe quel objet, en gros c'est une hashmap)
 
du coup dans ta servlet tu ferais
request.setAttribute("pouet", tonBean);
 
et dans ton jsp (par l'intermediaire d'un tag, là je te montre le code :o )  tu ferais
((TonBean) request.getAttribute("pouet" )).getTralala();


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°491315
benou
Posté le 19-08-2003 à 15:44:04  profilanswer
 

the real moins moins a écrit :


et dans ton jsp (par l'intermediaire d'un tag, là je te montre le code :o )  tu ferais
((TonBean) request.getAttribute("pouet" )).getTralala();


et dans la jstl tu ferais requestScope.pouet.tralala
 
et en JSP2 tu ferais pouet.tralala


---------------
ma vie, mon oeuvre - HomePlayer
n°491321
the real m​oins moins
Posté le 19-08-2003 à 15:46:22  profilanswer
 

benou a écrit :


et dans la jstl tu ferais requestScope.pouet.tralala
 
et en JSP2 tu ferais pouet.tralala

tu pourrais mettre un bout de contexte autour de ton exemple en jsp2? (y'a bien un tag ou qqchose non?)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°491322
bibidec
Posté le 19-08-2003 à 15:46:36  profilanswer
 

the real moins moins a écrit :

ben y'a un objet "requête" auquel tu peux coller des attributs (n'importe quel objet, en gros c'est une hashmap)
 
du coup dans ta servlet tu ferais
request.setAttribute("pouet", tonBean);
 
et dans ton jsp (par l'intermediaire d'un tag, là je te montre le code :o )  tu ferais
((TonBean) request.getAttribute("pouet" )).getTralala();
 


 
ah okokokokok...
je commence à y avoir plus clair !
merci à tout le monde pour vos réponses, c'est gentil!
je vais essayer de mettre ça en pratique, histoire d'avoir un modèle à suivre "propre" pour mes futurs applications !
merci!

n°491324
the real m​oins moins
Posté le 19-08-2003 à 15:47:12  profilanswer
 

j'sais pas c'qu'on a aujourd'hui, on est vraiment sympas  [:core 666]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°491334
_guigui_
Posté le 19-08-2003 à 15:52:34  profilanswer
 

the real moins moins a écrit :

ben y'a un objet "requête" auquel tu peux coller des attributs (n'importe quel objet, en gros c'est une hashmap)


faut qu'il soit sérialisable quand même

n°491337
the real m​oins moins
Posté le 19-08-2003 à 15:56:31  profilanswer
 

_guigui_ a écrit :


faut qu'il soit sérialisable quand même

euh oué ptet, j'ai jamais fait gaffe à vrai dire :o
 
 
mais ça fait lgtps que j'ai pas fait de web [:sisicaivrai]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°491344
the real m​oins moins
Posté le 19-08-2003 à 15:59:52  profilanswer
 

http://java.sun.com/products/servl [...] ng.Object)
 
parlent pas de serializable [:spamafote]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4
Page Précédente

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

  [jsp] vous pensez quoi de mon code ???

 

Sujets relatifs
[ Linux ] Un prog pour obtenir le code assembleur d'un exécutable ?[PHP, MYSQL] [résolu]Comment optimiser ce code? (nombreux SELECT FROM)
[delphi] longueur du code ... comment vous faites?code CSS foireux ou bug de ie? (si c'est le cas j'ai besoin d'un fix)
VB6 - Composant FTP : Ch testeurs (code source client FTP fourni)executer du code 1 fois sur deux dans un while
simplifier une ligne de code ASPconcours de code
Que pensez vous de ce code 
Plus de sujets relatifs à : [jsp] vous pensez quoi de mon code ???


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