Salut,
Si tu pense comme cà, arrête tout de suite le J2EE, tu n'en tireras aucun avantages ! Le développement J2EE, ca ne s'improvise pas. C'est une technologie beaucoup plus compliqué à apréhender (et utiliser) qu'il n'y parait au premier abord.
Si tu est embauché dans une boite et que tu code comme cà, je pense pas que ton patron te garde longtemps...
Une jsp a pour but de représenter le code HTML qui sera envoyé au navigateur. La jsp va être interprêtée par le serveur d'application en vue d'obtenir une classe java, qui sera compilée, puis exécutée tout cà pour enfin produire du code html. Donc plus la JSP contient du code, plus elle sera longue à produire ce qu'elle est censé produire...
La servlet est une classe java qui est faite pour traîter les requêtes des utilisateurs. Elles est directement compilée lors du déploiement de l'application. Du coup, le serveur n'a plus qu'à l'exécuter (je te laisse imaginer le gain de temps...).
Une autre chose : une exception dans une servlet est facilement identifiable est débuggable : tu sais quelle ligne produit l'erreur, tu peux la logguer facilement. Dans une jsp, c'est bien plus compliqué de connaitre la ligne de l'exception (quand bien même tu arrives à avoir un numéro de ligne !), et le mode debug est... incertain. Parfois l'IDE n'arrive pas à mettre un point d'arrêt dans une jsp, parfois, il saute des lignes dans l'exécution de ta jsp.
Ensuite, une servlet étant une classe java, il est très facile de la tester par un outil de test (JUnit, JTest, ou autre) alors que pour une jsp... qui n'est qu'un fichier de texte sans structure imposée... ben c'est impossible à tester automatiquement.
Enfin, et c'est le point le plus important, et qui pourtant et le plus négligé, mettre le code métier dans une servlet, et laisser la partie présentation à la jsp permet d'être beaucoup plus facile à lire.
Entre :
<table>
<%for (int i = 0; i < 10; i++) {%>
<tr>
<td>
<%= tableau[i].getNom() %>
</td>
<td>
<%= tableau[i].getPrenom() %>
</td>
</tr>
<% } %>
</table>
Et :
<table>
<logic:iterate name="tableau" property="personne" id="personne">
<tr>
<td><bean:write name="personne" property="nom"/></td>
<td><bean:write name="personne" property="prenom"/></td>
</tr>
</logic:iterate>
</table>
Qu'est-ce que tu trouves plus simple à lire ? Là c'est l'exemple le plus parlant, et pourtant celui qu'on retrouve le plus ! Si tu rajoute à cà la connexion à la bdd, ca devient incroyablement indigeste !
Une application qui est compliquée à lire est bonne pour la poubelle : non seulement personne ne voudra la reprendre après toi, mais toi-même, 6 mois ou 1 an plus tard, tu n'arriveras pas à comprendre ce que tu as voulu faire sans devoir te plonger dans le code.
Alors si tu mélange dans une seule page JSP, la connexion à la base de données (et toutes les exceptions qui en découle), la gestion de la session (et tout les tests qui en découle) et le formattage des données, et bien bonne chance pour t'y retrouver !
Si tu veux tout mélanger dans la jsp, alors ne fait pas du j2ee : pourquoi ne garder que les inconvénients sans utiliser le moindre avantage de cette technologie ? Fais du php à la place, au moins tu auras accès à un serveur très léger, un langage plus simple à utiliser, et tu n'auras guère de scrupules à coder avec les pieds vu que c'est la seule façon de faire.
______________________________________
AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre
réglement