JSP, TagLib, SGBD... - Divers - Programmation
Marsh Posté le 06-03-2003 à 15:03:42
Déja, des JSP, c'est pas fait pour utiliser une connexion à une base de données. Y a les servlets pour ça !
Marsh Posté le 06-03-2003 à 15:35:38
Merci pour cette réponse qui fait bcp avancer les choses !!
Je prefere aussi les servlets, mais la ca depend pas de moi...
Et apres c'est une question de preferences .. faire du Java dans de l'html ou de l'html dans du java .. et puis va donner une servlet a quelquun qui est plus branché design que dev .. bref ..t'as pas mieux comme reponse ?
Marsh Posté le 06-03-2003 à 15:48:16
Nan, ms tu comprend pas ce que j'voulais dire.
J'vais donner un exemple, tu comprendra mieux :
Imagine, que quelqu'un poste sur un forum de bricolage, une question comme celle-ci :
"Bonjour, j'ai un problème : je prend un marteau, j'essaye d'enfoncer une vis avec, et ça marche pas ? Comment je peux faire (sachant que je n'veux bien sur pas utiliser de tournevis) ?"
...tu lui dirais quoi ?
Marsh Posté le 06-03-2003 à 15:49:23
plancton a écrit : Merci pour cette réponse qui fait bcp avancer les choses !! |
Le designer n'ont pas à aller fouiller dans la base de données en principe. Ils utilisent des beans qui TA servlet, sur laquelle ils n'ont pas la main, aura attaché à une session ou à une requête. c ça le fonctionement "normal" des JSP...
Marsh Posté le 06-03-2003 à 16:29:08
El_gringo a écrit : |
de prendre une lime a ongle, une clée, un couteau à la pointe cassé une tite cuillere, d'utiliser ses dents etc ..
vue qu'il a pas le choix au lieu de baisser les bras et dire ca marchera jamais .. je cherche une solution. C'est comme ca qu'on avance.
Marsh Posté le 06-03-2003 à 16:42:05
plancton a écrit : |
Et moi j'essayerai de le convaincre d'utiliser un trournevis. Et si on veut pas lui donner le tournevis, je lui dirais d'insister...
Marsh Posté le 06-03-2003 à 16:47:23
nanh y en a plou de tournevis !!
El_gringo a écrit : |
Pour cela faut qu'il connaisse:
- le java...(je suis d'accord c'est pas compliqué.. mais bon y a des artistes qui ne sont pas des super doués en java....comme toi !)
- qu'il est compris le principe de fonctionnement d'une architecture 3tiers,
- du protocole http..etc etc
L'interet des tags c'est de suprimer le code java des jsp et de le mettre dans des beans a coté. a condition que la declaration des tags soit simple biensur. L'interet des tags utilisé ici c'est d'avoir un tableau de taille aleatoire declarable, sans boucle apparente dans ma JSP et non perdu au milieu d'une servlet.
El_gringo a écrit : |
je discuterais pas sur le caractere normal des choses.. ca sent le dialogue de sourd
Marsh Posté le 06-03-2003 à 16:53:41
plancton a écrit : nanh y en a plou de tournevis !! |
Qu'est ce que t'en sais de si je suis j'suis doué ou pas en Java !????
En faisant ça, tu permets aux designers de faire n'importe quoi sur ta bd.
Tu n'utilises pas l'intéret du Java/JSP. Autant faire du Php, c plus facile.
Bonne chance, ciao.
Marsh Posté le 06-03-2003 à 17:12:31
El_gringo a écrit : |
Il ne fera pas n'importe quoi, les beans des tags c'est moi qui les codes, de plus, la il s'agit juste d'une consultation de tuples et d'attributs d'une base de données. Si je veux inserer un tuple
ou faire un update, ou toute autre transaction nécessitant eventuellement des notions de SET AUTOCOMMIT ,ROLLBACK etc etc .. qui demande aucune presentation, la je peux utiliser une servlet... !!
Marsh Posté le 06-03-2003 à 14:57:56
bonjour!
j'ai un tit probleme avec les taglibs et la deconnexion a une base de donnée en cas de plantage ou relaod trop rapide
avant j'avais ce code la :
......
<%
// Ouverture de connexion
ctr.makeConnection("SGBD" );
try {
ResultSet RS = ctr.getActeur();
if (RS != null) {
RS.beforeFirst();
while (RS.next()) {
sNum = ctr.recupCol("NUM_ACT",RS);
sPasse = ctr.recupCol("MOT_PASSE",RS);
// pour le format des dates
String format = "dd/MM/yyyy";
SimpleDateFormat formatDate = new SimpleDateFormat(format);
java.util.Date dCrea = ctr.recupColDate("DAT_CREA",RS);
String sDate_Crea = formatDate.format(dCrea);
java.util.Date dModif = ctr.recupColDate("DAT_MODIF",RS);
String sDate_Modif = formatDate.format(dModif);
%>
<tr>
<td><%=sNum%></td>
<td><%=sPasse%></td>
<td><%=sDate_Crea%></td>
<td><%=sDate_Modif%></td>
</tr>
<%
}
}
%>
</table>
<%
ctr.close();
}
catch (Exception e) {
ctr.close();
throw e;
}
%>
ETc....
Aucun probleme...
j'ai crée l'équivalent avec mes propres taglib, qui donne :
.............
[/#e21c00]<tag:getConnectionByPoolUser="SGBD"></tag:getConnectionByPool>[/#e21c00]
<tag:sqlQuery id="sql">
select num_act, mot_passe, dat_crea, dat_modif from _act
</tag:sqlQuery>
<tag:resultSet queryId="sql">
<tag:rows>
<tr>
<td>
<tag:getStringColumn>num_act</tag:getStringColumn>
</td>
<td>
<tag:getStringColumn>mot_passe</tag:getStringColumn>
</td>
<td>
<tag:getDateColumn format="dd/mm/yyyy">dat_crea</tag:getDateColumn>
</td>
<td><tag:getDateColumn format="dd/mm/yyyy">dat_modif</tag:getDateColumn>
</td> </tag:rows>
</tr>
</tag:resultSet>
</table>
<tag:closeConnection></tag:closeConnection>
ETc.........
donc si je prend mon temps, y a pas vraiment de differences entre ces deux codes. Ou est le probleme me direz vous?
Bah par exemple si je lance la jsp contenant le code avec les taglibs et que je fais deux ou 3 reload rapides, je vais pas avoir mes connexions a la base de fermées. Alors que dans le cas 1 oui.
de plus si je me plante dans le code apres la taglib getConnectionByPool, la non plus, la connexion créée ne sera pas fermée. Alors que dans le cas 1, grace au try/catch on a pas tous ces problemes.
Je voulais dc savoir si quelqu'un sait comment résoudre ces problemes !! Comment fermer la connexion ouverte avant le plantage ou le reload !!
Merci beaucoup !!