Java - coté serveur, ça donne quoi !?

Java - coté serveur, ça donne quoi !? - Programmation

Marsh Posté le 14-03-2002 à 16:44:05    

Désolé, j'y connais pas grand chose à tt ce qui est client/serveur. Je connais pas grand chose aux applet Java non plus.
Une applet, c uniquement coté client ou est ce que ça peut faire des trucs (genre, écritre sur le disque dur, consulter un bd), coté serveur ?
Et les servlets, c quoi par rapport aux applets !?

 

[jfdsdjhfuetppo]--Message édité par El_Gringo--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 14-03-2002 à 16:44:05   

Reply

Marsh Posté le 14-03-2002 à 16:50:19    

y'a plein de posts la dessus, fais une recherche
 
les servlets sont des sortes d'applets mais coté serveur, c'est grace à elles que par exemple tu as accès aux bases de données par exemple (via JDBC)


---------------
"There's not such a thing as a stupid question, only stupid people..."
Reply

Marsh Posté le 14-03-2002 à 17:06:32    

euh ... mouais ... on va dire ca comme ca ...

Reply

Marsh Posté le 14-03-2002 à 17:07:25    

airbg a écrit a écrit :

 
les servlets sont des sortes d'applets mais coté serveur, c'est grace à elles que par exemple tu as accès aux bases de données par exemple (via JDBC)  




 
Ah non, il n'y a aucune parenté entre servlets et applets...à part le language?
 
Bon, une applet, c'est un programme qui est téléchargé sur la machine du client, et exécuté par la JVM du navigateur ou du plugin...Un peu comme un flash, si tu veux...Sauf que ça peut faire plus de choses...quoique je sais pas tout ce qu'on peut faire en flash.
Pour des raisons de sécurité, les droits des applets sont très restreints. La seule chose que tu puisses faire avec, c'est ouvrir des pages web, et ouvrir une connection socket vers le serveur où l'applet a été téléchargée...Et c'est à peu près tout, sauf si ton applet est signée...Mais de toutes façons, elle ne pourra jamais écrire un fichier sôté serveur!
 
Une servlet, ça permet de générer une page web (ou pas, d'ailleurs) : une servlet est généralement appellée par un moteur de servlets - jserv, tomcat- qui sert d'interface entre un serceur Web et les servlets, comme du PHP ou un script CGI...  
 
voilà, j'espère avoir éclairé ta lanterne. Si tu as besoin de plus d'infos, n'hésites pas, en ce moment, je bosse sur des applets et des servlets!!:D

Reply

Marsh Posté le 14-03-2002 à 17:07:30    

HappyHarry a écrit a écrit :

euh ... mouais ... on va dire ca comme ca ...  




 
ça à pas l'air de vraiement te plair.
Exprime toi, je t'écoute... :D

Reply

Marsh Posté le 14-03-2002 à 17:10:39    

gfive >
 
j'ai essayé de répondre rapidement mais je me suis mal exprimé. Je suis d'accord avec ton explication :)


---------------
"There's not such a thing as a stupid question, only stupid people..."
Reply

Marsh Posté le 14-03-2002 à 17:11:32    

gfive m'a devancé  :D

Reply

Marsh Posté le 14-03-2002 à 17:14:53    

Pas assez rapide, petit scarabé! :D

Reply

Marsh Posté le 14-03-2002 à 17:16:09    

gfive: pile-poil.
 
Une difference entre Servlets et PHP/CGI c'est que les servlets sont compilees et executees a l'interieur du serveur web, ce qui (en theorie) garantit les meilleures performances.

Reply

Marsh Posté le 14-03-2002 à 17:19:41    

Gonzoide a écrit a écrit :

gfive: pile-poil.
 
Une difference entre Servlets et PHP/CGI c'est que les servlets sont compilees et executees a l'interieur du serveur web, ce qui (en theorie) garantit les meilleures performances (sauf si evidemment ta requete porte sur un calcul intensif execute par un CGI compile en C, of course :))  



 

[jfdsdjhfuetppo]--Message édité par Gonzoide--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 14-03-2002 à 17:19:41   

Reply

Marsh Posté le 14-03-2002 à 17:26:06    

gfive a écrit a écrit :

 
 
Ah non, il n'y a aucune parenté entre servlets et applets...à part le language?
 
Bon, une applet, c'est un programme qui est téléchargé sur la machine du client, et exécuté par la JVM du navigateur ou du plugin...Un peu comme un flash, si tu veux...Sauf que ça peut faire plus de choses...quoique je sais pas tout ce qu'on peut faire en flash.
Pour des raisons de sécurité, les droits des applets sont très restreints. La seule chose que tu puisses faire avec, c'est ouvrir des pages web, et ouvrir une connection socket vers le serveur où l'applet a été téléchargée...Et c'est à peu près tout, sauf si ton applet est signée...Mais de toutes façons, elle ne pourra jamais écrire un fichier sôté serveur!
 
Une servlet, ça permet de générer une page web (ou pas, d'ailleurs) : une servlet est généralement appellée par un moteur de servlets - jserv, tomcat- qui sert d'interface entre un serceur Web et les servlets, comme du PHP ou un script CGI...  
 
voilà, j'espère avoir éclairé ta lanterne. Si tu as besoin de plus d'infos, n'hésites pas, en ce moment, je bosse sur des applets et des servlets!!:D  




 
génial, g l'impression que les servlets, c exactement ce dont g besoin. en gros Servlets, Php, CGI, c des technologies différentes pour faire à peu près les même choses, c ça !?
Je t'explique mon pb (que g déja expliqué en gros ds un autre post, ms apparement, t'étais pas là !) :
Pour l'instant, on a un script CGI qui permet de consulter des données. Pour cela, il a besoin de :
 - générer du code HTML
 - pouvoir écrire des fichiers coté serveur
 - pouvoir consulter une base de donnée coté serveur (qui peut être située sur un autre machine)
 
les servlet, ça pourrait bien aller à priori pour ça !?

Reply

Marsh Posté le 14-03-2002 à 17:27:35    

Citation :

les servlet, ça pourrait bien aller à priori pour ça !?

 
 
En plein, ouais!! :) C exactement ça! ;)

Reply

Marsh Posté le 14-03-2002 à 17:32:42    

gfive a écrit a écrit :

Citation :

les servlet, ça pourrait bien aller à priori pour ça !?

 
 
En plein, ouais!! :) C exactement ça! ;)  




 
Trop bien. Je vais proposer ça à ma boite !
g pas envie d'apprendre le Php, et le peu que je connais du Java, j'addore ! :love:  
Encore un petit truc: avec des servlets, même si apparement, c très axé "serveur", on peut qd même avoir, comme en Php, des "variables de session", des variables spécifique à chaque poste client ?

 

[jfdsdjhfuetppo]--Message édité par El_Gringo--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 14-03-2002 à 17:34:41    

bien sur


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 14-03-2002 à 17:35:02    

Ouais, bien sûr, dans ma boite, on utilise des servlets pour tous les services de ce genre, dont certains on des sessions pour chaque utilisateur, c'est sans problème!;)

Reply

Marsh Posté le 14-03-2002 à 17:35:22    

DarkLord a écrit a écrit :

bien sur  




 
Bien sur, bien sur...
En CGI, je crois pas qu'on puisse avoir ça.

Reply

Marsh Posté le 14-03-2002 à 17:36:19    

El_Gringo a écrit a écrit :

 
 
Bien sur, bien sur...
En CGI, je crois pas qu'on puisse avoir ça.  




 
Je ne vois pas le rapport. la question était, est ce qu'avec des servlets on a des variables de session pour chaque client comme en PHP. Je réponds oui
 
Je ne vois pas de CGI là dedans ...


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 14-03-2002 à 17:36:34    

gfive a écrit a écrit :

Ouais, bien sûr, dans ma boite, on utilise des servlets pour tous les services de ce genre, dont certains on des sessions pour chaque utilisateur, c'est sans problème! ;)  




 
grilled  :lol:  :lol:  :lol:


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 14-03-2002 à 17:37:25    

El_gringo > Y'a meme encore mieux si tu veux pas trop te fatiguer, c'est les JSP : ca fonctionne comme du PHP (du code embarque dans du HTML), mais c'est compile en live en une servlet.
 
Si tu veux commencer dans les pages generiques, vaut mieux commencer avec PHP qui necessite un investissement en temps et en soft beaucoup plus leger, et tu beneficies en plus de l'experience de tout un tas de webmasters et d'hebergeurs. JSP/Servlets c'est plus oriente professionnel, puisque tu codes en Java, il te faut un serveur qui accepte cette techno (beaucoup moins courant que PHP). Si tu dois faire une page avec peu de code mais beaucoup de HTML, fais la en JSP. Si tu dois faire une page avec beaucoup de traitement mais peu d'affichage, ecris directement la Servlet.  
 
Je bosse avec ce genre de trucs depuis pas mal de temps, c'est vraiment top.

 

[jfdsdjhfuetppo]--Message édité par Gonzoide--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 14-03-2002 à 17:38:08    

faire des accès BD depuis une JSP ?
 
 :gun:


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 14-03-2002 à 17:40:36    

DarkLord a écrit a écrit :

 
 
Je ne vois pas le rapport. la question était, est ce qu'avec des servlets on a des variables de session pour chaque client comme en PHP. Je réponds oui
 
Je ne vois pas de CGI là dedans ...  




 
Non, c'était juste pour dire que c'était pas forcément SI évident que ça qu'on a des variables de session. certaines technologies n'en ont pas...

Reply

Marsh Posté le 14-03-2002 à 17:43:09    

Gonzoide a écrit a écrit :

 
Si tu veux commencer dans les pages generiques, vaut mieux commencer avec PHP qui necessite un investissement en temps et en soft beaucoup plus leger, et tu beneficies en plus de l'experience de tout un tas de webmasters et d'hebergeurs. JSP/Servlets c'est plus oriente professionnel, puisque tu codes en Java, il te faut un serveur qui accepte cette techno (beaucoup moins courant que PHP). Si tu dois faire une page avec peu de code mais beaucoup de HTML, fais la en JSP. Si tu dois faire une page avec beaucoup de traitement mais peu d'affichage, ecris directement la Servlet.  
 
Je bosse avec ce genre de trucs depuis pas mal de temps, c'est vraiment top.  
 
 




 
Je veux pas "commencer", j'ai déja généré plein d'HTML avec du CGI. Le truc, c que je connais déja Java, du moins, je connais le langage de base (je me suis arrêté au jdk 1.2), je connais pas les servlets, mais bon, quand j'aime un truc, je peux m'investir. Et j'aime le java.
 
G beaucoup de calculs et relativement peu d'affichage HTML, donc, sur tes conseils --> Servlets !

 

[jfdsdjhfuetppo]--Message édité par El_Gringo--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 14-03-2002 à 17:44:49    

DarkLord a écrit a écrit :

faire des accès BD depuis une JSP ?
 
 :gun:  




 
Non, puisque ta JSP c'est la couche de presentation qui ne doit en theorie faire que des appels vers un serveur, et lui-meme vers la DB, sinon le trois-tiers tu peux t'asseoir dessus ... mais en theorie rien n'empeche de le faire :)
 
PS : Depuis la nuit des temps les codeurs PHP font des appels vers la DB, ca les empeche pas de dormir non plus ;)

Reply

Marsh Posté le 14-03-2002 à 17:47:26    

El_Gringo a écrit a écrit :

 
 
Je veux pas "commencer", j'ai déja généré plein d'HTML avec du CGI. Le truc, c que je connais déja Java, du moins, je connais le langage de base (je me suis arrêté au jdk 1.2), je connais pas les servlets, mais bon, quand j'aime un truc, je peux m'investir. Et j'aime le java.
 
G beaucoup de calculs et relativement peu d'affichage HTML, donc, sur tes conseils --> Servlets !  




 
Faut quand meme faire gaffe (comme le souligner DarkLord) : quitte a prendre un langage de haut niveau, autant ne pas commencer a faire le cochon avec ... donc pas exemple, pas d'appels DB directement dans ta servlet, etc etc. Mis a part le langage lui-meme, c'est ca la difference principale avec d'autres technos plus orientees "script" ou "facilite/rapidite de developpement".

Reply

Marsh Posté le 14-03-2002 à 17:47:28    

Gonzoide a écrit a écrit :

E Si tu dois faire une page avec peu de code mais beaucoup de HTML, fais la en JSP. Si tu dois faire une page avec beaucoup de traitement mais peu d'affichage, ecris directement la Servlet.  




 
Ca dépend, avec des outils comme WebMacro (un parser qui permet de parser des fichiers HTML après avoir mis les données qui t'intéressent dans une HashTable), tu peux créer des templates HTML très complexes, directement en HTML, en y ajoutant des directives webmacro, qui permettent d'utiliser TOUTES les méthodes et les attributes publics des objects que tu as mis dans la HashTable...Super pratique, n'empêche! Ca permet entre autres, de créer des servlets qui ne font que remplir les HashTable, et de changer tout le look de ton site sans toucher une ligne de java.

Reply

Marsh Posté le 14-03-2002 à 17:48:58    

gfive a écrit a écrit :

 
 
Ca dépend, avec des outils comme WebMacro (un parser qui permet de parser des fichiers HTML après avoir mis les données qui t'intéressent dans une HashTable), tu peux créer des templates HTML très complexes, directement en HTML, en y ajoutant des directives webmacro, qui permettent d'utiliser TOUTES les méthodes et les attributes publics des objects que tu as mis dans la HashTable...Super pratique, n'empêche! Ca permet entre autres, de créer des servlets qui ne font que remplir les HashTable, et de changer tout le look de ton site sans toucher une ligne de java.  




 
Je connais pas, mais a vu de nez je trouve ca plutot degueu ... rien que le nom fait peur :)

 

[jfdsdjhfuetppo]--Message édité par Gonzoide--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 14-03-2002 à 17:50:45    

Gonzoide a écrit a écrit :

 
 
Non, puisque ta JSP c'est la couche de presentation qui ne doit en theorie faire que des appels vers un serveur, et lui-meme vers la DB, sinon le trois-tiers tu peux t'asseoir dessus ... mais en theorie rien n'empeche de le faire :)
 
PS : Depuis la nuit des temps les codeurs PHP font des appels vers la DB, ca les empeche pas de dormir non plus ;)  




 
 
 
 :jap:


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 14-03-2002 à 18:01:28    

Gonzoide a écrit a écrit :

 
 
Je connais pas, mais a vu de nez je trouve ca plutot degueu ... rien que le nom fait peur :)  
 
 




 
:D C normal, c'est parce que j'explique comme un cochon!! Non, c vrai que le principe est pas facile à expliquer comme ça, mais c'est vraiment très très pratique, et assez puissant, en fin de compte, même si ça demande pas mal d'apprentissage.
 
Par exemple, pour générer un menu dynamique en plusieurs langues, avec des sous menus...ben tu et démerdes pour récupérer la langue depuis la session dans ta servlet (c tout con), ensuite, tu va lire un fichier de conf qu icontient les correspondances label (localisé, bien sûr)->page (en fait, on a une classe qui lit ce fichier, et qui te retourne un ArayList qui contient des objets MenuItem qui ont 3 attributs : le label, le nom de la page correspondante, et le "niveau". L'arraylist ne contient bien évidement que les entrées à afficher en fonction de l'entrée demandée..
 
Dans la page HTML, tu as un bout de code comme ça :
 
<table>
#foreach $menuentry in $menu {
     <tr>
         <td><a href="$menuenty.page">$menuentry.label</a></td>
     <tr>
}
</table>
 
Bon, là, c'est un code HTML de merde, mais tu peux tout à fait ajouter ce que tu veux autour...ben je trouve ça assez pratique, quand même! :D

Reply

Marsh Posté le 14-03-2002 à 18:01:44    

DarkLord : t'as eu peur, hein ? :D :D :D

Reply

Marsh Posté le 14-03-2002 à 18:04:17    

gfive a écrit a écrit :

 
 
:D C normal, c'est parce que j'explique comme un cochon!! Non, c vrai que le principe est pas facile à expliquer comme ça, mais c'est vraiment très très pratique, et assez puissant, en fin de compte, même si ça demande pas mal d'apprentissage.
 
Par exemple, pour générer un menu dynamique en plusieurs langues, avec des sous menus...ben tu et démerdes pour récupérer la langue depuis la session dans ta servlet (c tout con), ensuite, tu va lire un fichier de conf qu icontient les correspondances label (localisé, bien sûr)->page (en fait, on a une classe qui lit ce fichier, et qui te retourne un ArayList qui contient des objets MenuItem qui ont 3 attributs : le label, le nom de la page correspondante, et le "niveau". L'arraylist ne contient bien évidement que les entrées à afficher en fonction de l'entrée demandée..




 
Ben je vois pas trop l'interet sur ton exemple ... remplacer des commandes Java par des macros me semble vraiment crade, j'ai vraiment l'impression que la finalite c'est de gagner du temps alors que le but quand tu fais du Java c'est pas trop ca :(

Reply

Marsh Posté le 14-03-2002 à 18:05:27    

Gonzoide a écrit a écrit :

DarkLord : t'as eu peur, hein ? :D :D :D  




je crois que darklord fait preuve de beaucoup de diplomatie plutot
 
 
 :lol:

Reply

Marsh Posté le 14-03-2002 à 18:05:41    

Gonzoide a écrit a écrit :

 
 
Faut quand meme faire gaffe (comme le souligner DarkLord) : quitte a prendre un langage de haut niveau, autant ne pas commencer a faire le cochon avec ... donc pas exemple, pas d'appels DB directement dans ta servlet, etc etc. Mis a part le langage lui-meme, c'est ca la difference principale avec d'autres technos plus orientees "script" ou "facilite/rapidite de developpement".  




 
Bah... je les fais ou mes appels BD si je les fais pas dans ma servlet !?

Reply

Marsh Posté le 14-03-2002 à 18:10:10    

Gonzoide a écrit a écrit :

 
 
Ben je vois pas trop l'interet sur ton exemple ... remplacer des commandes Java par des macros me semble vraiment crade, j'ai vraiment l'impression que la finalite c'est de gagner du temps alors que le but quand tu fais du Java c'est pas trop ca :(  




 
Ouais, j'admet que pour mon exemple, c'est pas top..Mais bon, ici, les trucs qu'on code ne doivent pas être accédés que par du HTML, mais aussi par plein d'autres interfaces exotiques (Serveur Vocaux, SMS, etc, etc..) et pour chaque interface d'accès, on a plein d'interfaces graphiques différentes....alors bon, par exemple, là, je viens de coder le HTML pour un nouveau client, ben j'ai pas eu à écrire une seule ligne de Java : j'ai pris l'interface graphique de base toute moche, et j'ai collé mes images, mes liens et tutti quanti dedans, sans me poser plus de questions : y'a même pas à retester qi c'est bien fait, et bon, quand tu as des deadlines, gagner du temps, tu aimes!! :D:D
Après, je conanis pas trop JSP, peut être que ce serait plus joli, je sais pas! :D

Reply

Marsh Posté le 14-03-2002 à 18:11:02    

El_Gringo a écrit a écrit :

 
 
Bah... je les fais ou mes appels BD si je les fais pas dans ma servlet !?  




 
Dans une API appellée par tes servlets, à mon sens...Si tu changes de techno, ton API est pas perdue.

Reply

Marsh Posté le 14-03-2002 à 18:14:33    

El_Gringo a écrit a écrit :

 
 
Bah... je les fais ou mes appels BD si je les fais pas dans ma servlet !?  




 
AAAAAAAAAAAAAAAAAAAAAAAAAAAARGH !
 
Ta servlet c'est ta couche de presentation, elle devrait meme pas etre au courant qu'il y a une DB derriere ! Les appels DB, c'est dans les couches basses de ton serveur. Ta servlet doit demander au serveur qui implemente la logique qu'il veut pour te fournir l'objet desire. Si tu fais tes appels dans la servlet, comment tu peux gerer un cache, par exemple ? C'est ton serveur qui fait ca.
 
Servlet : "serveur, file-moi l'objet X, que je l'affiche"
Serveur, couche business : "L'objet X est un objet business compose des objets Y et Z"
Serveur, couche technique: "Y est en cache, Z doit etre recupere de la couche interface donnees"
Serveur, couche interface : "Z est en DB, je vais le chercher"
Serveur, couche interface : "technique, voila ton objet Z"
Serveur, couche technique : "business, voila ton X"
Serveur, couche business : "Servlet, voila ce que je t'autorise a voir de l'objet X"
Servlet : "et voila"
 
Ca semble compliqué mais c'est bô :jap:

Reply

Marsh Posté le 14-03-2002 à 18:58:16    

si tu remplacais le mot servlet par le mot JSP ce serait parfait. Définitivement une servlet ne fait PAS partie de la couche présentaiton.
 
La servlet c'est le controlleur, pas la vue dans MVC. Mais bon comme une JSP c'est une servlet en fait, tout ca peut preter à discussion


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 14-03-2002 à 18:58:32    

Gonzoide a écrit a écrit :

DarkLord : t'as eu peur, hein ? :D :D :D  




 
 
 :??:


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 14-03-2002 à 18:58:46    

veryfree a écrit a écrit :

 
je crois que darklord fait preuve de beaucoup de diplomatie plutot
 
 
 :lol:  




 
re  :??:


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 14-03-2002 à 20:11:13    

DarkLord a écrit a écrit :

 
 
re  :??:  




 
c'est au moment ou il commence a te faire une lecon sur les jsp (et vu que je sait que tu les utilises) ca ma fait rire Parce que our pas le vexer tu as ecrit "bien sur" enfin moi jl ai compris comme ca
 
 
 [:vinz416@school]

 

[jfdsdjhfuetppo]--Message édité par veryfree--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 15-03-2002 à 08:58:56    

Gonzoide a écrit a écrit :

 
 
AAAAAAAAAAAAAAAAAAAAAAAAAAAARGH !
 
Ta servlet c'est ta couche de presentation, elle devrait meme pas etre au courant qu'il y a une DB derriere ! Les appels DB, c'est dans les couches basses de ton serveur. Ta servlet doit demander au serveur qui implemente la logique qu'il veut pour te fournir l'objet desire. Si tu fais tes appels dans la servlet, comment tu peux gerer un cache, par exemple ? C'est ton serveur qui fait ca.
 
Servlet : "serveur, file-moi l'objet X, que je l'affiche"
Serveur, couche business : "L'objet X est un objet business compose des objets Y et Z"
Serveur, couche technique: "Y est en cache, Z doit etre recupere de la couche interface donnees"
Serveur, couche interface : "Z est en DB, je vais le chercher"
Serveur, couche interface : "technique, voila ton objet Z"
Serveur, couche technique : "business, voila ton X"
Serveur, couche business : "Servlet, voila ce que je t'autorise a voir de l'objet X"
Servlet : "et voila"
 
Ca semble compliqué mais c'est bô :jap:  




 
heu, tu sais, "buisness", "couche technique", ça veut pas dire grand chose pour moi.
Et qd tu parle de serveur, tu veux dire quoi !? c une application Java serveur indépendante de ma servlet qui va faire mes accès BD, c ça !?
(ça fait un peu peur tte ton histoire, j'me demande si je vais pas faire du Php moi :D)

 

[jfdsdjhfuetppo]--Message édité par El_Gringo--[/jfdsdjhfuetppo]

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed