Dois-je connaître les servlets et JSP pour apprendre Spring ou Hibernate ou tout autre framework Web Java? [fermé]

17

J'ai demandé à beaucoup de gens par où commencer à apprendre le développement Web Java, je connais déjà le noyau Java (Threading, Generics, Collections, un peu d'expérience avec (JDBC)) mais je ne connais pas les JSP et les servlets. J'ai fait ma juste part de développement avec plusieurs applications Web utilisant PHP pour le côté serveur et HTML, CSS, Javascript, HTML5 pour le côté client.

La plupart des gens à qui j'ai demandé m'ont dit de passer directement à Hibernate tandis que certains m'ont dit que je n'ai pas besoin d'apprendre les servlets et les jsps et que je devrais immédiatement étudier le framework Spring. Est-ce vrai? n'ai-je pas besoin d'apprendre les servlets et les JSP pour apprendre l'hibernation ou Spring?

Toutes leurs réponses m'ont confondu et maintenant je suis complètement perdu quoi apprendre ou étudier. Je pense que si je sautais l'apprentissage de JSP et des servlets, je manquerais beaucoup de concepts importants qui m'aideront sûrement à l'avenir.

Donc, la question, dois-je avoir des servlets foundation / know et JSP pour apprendre Spring ou hibernate ou tout autre framework web Java.?

KyelJmD
la source
3
Notez que hibernate est juste une couche d'abstraction de base de données, rien de plus, et il peut être utilisé pour brancher une source de données dans n'importe quel type d'application Java, pas seulement une application Web.
Ed Griebel
1
Connaître les servlets et JSP ne ferait pas de mal, jetez un œil à "Head First - Servlets and JSP". Une lecture facile à comprendre, mais couvre également beaucoup.
Jaydee
@Jaydee Je dirige actuellement Core Servlets et JSP par Marty Hall + les servlets et JSP de Murach.
KyelJmD
Je ne pense pas que cette question ait reçu une réponse adéquate. Bear Bibeault, un développeur et des auteurs bien connus insistent pour que l'on apprenne JSP et Servlets avant d'apprendre N'IMPORTE QUEL cadre. Quelqu'un veut-il montrer pourquoi cela peut ou non s'appliquer aujourd'hui? Voici son article - coderanch.com/t/521300/JSP/java/JSP-servlets-struts
Borat Sagdiyev
D'accord, j'ai obtenu des réponses de Bear Bibeault. Voir ces deux liens - coderanch.com/t/633527/Spring/… et coderanch.com/t/633526/JSP/java/…
Borat Sagdiyev

Réponses:

17

Si vous avez une bonne compréhension de HTML, CSS et JavaScript, vous avez une longueur d'avance sur de nombreuses personnes qui finissent par faire du développement Web. Les concepts derrière JSP sont très similaires à PHP. Les bizarreries sont différentes. Un servlet est le nom d'un morceau de code Java qui sert une demande. C'est vraiment ça. L'ensemble du framework Struts d'origine était un seul servlet.

J'ajouterais Tomcat ou Jetty à votre liste de technologies à apprendre. Tomcat est l'implémentation originale du conteneur de servlets Java et s'avère également être un serveur Web complet et plutôt populaire. GlassFish est construit dessus. J'ai utilisé Jetty au lieu de Tomcat dans mes nouveaux projets car c'est plus simple, plus flexible et plus rapide. Jetty a été conçu pour créer des services Web par opposition aux applications Web. Mais une application Web n'est qu'un service Web qui sert du HTML en réponse aux demandes HTTP brutes, donc si vous comprenez HTTP (dont vous pouvez apprendre les parties importantes en quelques heures à un jour), il est très facile de travailler avec.

Vous pouvez créer un petit site Web avec Tomcat et JSP ( tutoriel ici ou JSF) en sachant exactement ce que vous savez et en passant quelques heures à parcourir des tutoriels. De cette façon, vous pouvez commencer où vous êtes à l'aise avant de vous étirer. Créez ensuite un javax.servlet.http.HttpServlet qui écrit "<html> <head> <title> Hi </title> </head> <body> <h1> Hello World </h1> </body> </ html > "à l'objet de réponse, répertoriez-le dans votre Tomcat web.xml et envoyez-lui une demande HTTP à partir d'un navigateur Web. Ce n'est pas sorcier. Tous les frameworks Web Java sont des variantes de ces deux activités de base.

Si vous empruntez la voie de la jetée, elle est encore moins structurée. Découvrez cet exemple Hello Jetty .

Si vous voulez simplement créer un blog ou un site de commerce électronique standard, je commencerais par SquareSpace ou Wordpress ou quelque chose du genre . Vous obtenez tellement de choses sur le marché, il n'y a plus aucun moyen de justifier le codage personnalisé.

La force de Java pour les applications Web réside dans sa fiabilité, sa maintenabilité et ses performances. PHP ou Ruby / Rails est plus simple, mais Java évoluera autant que vous le souhaitez. Je ne suis renversé par aucun des cadres Web Java. Lorsque vous avez une équipe de personnes travaillant sur une grande application Web ou que vous devez utiliser Hibernate, un framework comme Spring brille vraiment. Le printemps est le plus populaire. Lorsque vous vous familiarisez avec les servlets et JSP / JSF, découvrez comment Spring les relie à un modèle de données.

Si vous créez un blog ou un système de gestion de contenu, vous pouvez peut-être vous en sortir avec une base de données NoSQL. Mais je dirais que les bases de données NoSQL ne sont fondamentalement qu'une couche de mise en cache sur un système de fichiers, plutôt que de remplacer les bases de données relationnelles. Je pense qu'il est rare qu'un projet qui soit bien adapté à une base de données NoSQL soit approprié à développer en Java.

Les choses qui nécessitent toujours un code personnalisé et performant (en Java, PHP, peu importe) auront probablement une base de données relationnelle / SQL qui les alimentera. Je vous recommanderais tout d'abord de vous familiariser avec SQL et JDBC (Java Database Connectivity). Une fois que vous êtes à l'aise avec le monde des objets Java et le monde des bases de données relationnelles et SQL, vous pouvez apprendre Ebean / JPA (Java Persistence API) / ORM (Object to Relational Mapping) qui relie le monde des objets au monde relationnel.

Les ORM sont délicats et étranges. La plupart en valent finalement la peine. Ebean est le plus simple que je connaisse. Je suis plus à l'aise avec ça après 8 mois qu'avec Hibernate après 12 ans. Je connais beaucoup de gens qui utilisent Spring avec Hibernate et ils ne semblent pas avoir de problème, ni même être particulièrement conscients de ce que fait ou fait Hibernate, donc je dirais que si vous allez utiliser Hibernate, faites-le jusqu'au printemps. Peut-être juste parce que j'ai travaillé plus longtemps avec lui, j'ai réussi à bloquer complètement Hibernate avec quelques cartes de hachage pour les tests, ce qui est génial (aperçu disponible sur demande).

Vous possédez déjà certaines des compétences les plus importantes. Prenez les autres un par un et essayez de ne pas vous laisser submerger.

GlenPeterson
la source
avez-vous des liens ou un tutoriel où je peux commencer à apprendre lesdites technologies? ou peut-être une bonne suggestion pour un livre. La plupart des applications que j'ai créées utilisent un SGBDR, de SQL Server à un simple MySQl.
KyelJmD
J'ai nettoyé ma réponse et ajouté des liens comme demandé. Hibernate / JPA et les différents frameworks Web prennent du temps à apprendre et à maîtriser. La plupart des autres technologies, vous en savez déjà assez sur le fait que vous devriez pouvoir travailler en quelques heures ou une journée. Je ne connais pas Spring, mais consultez la documentation sur leur site Web ou obtenez un livre très apprécié sur Amazon.
GlenPeterson
Je ne vois pas comment cela répond à la question. Bear Bibeault, un développeur et des auteurs bien connus insistent pour que l'on apprenne JSP et Servlets avant d'apprendre N'IMPORTE QUEL cadre. Voulez-vous montrer pourquoi cela peut ou non s'appliquer aujourd'hui? Voici son article - coderanch.com/t/521300/JSP/java/JSP-servlets-struts
Borat Sagdiyev
@GlenPeterson, "L'ensemble du framework Struts d'origine était un seul servlet." sens? Cela ne ralentirait-il pas chaque appel http?
Pacerier
@Pacerier Nous avions l'habitude de charger Struts 1 dans Tomcat en tant que servlet. Le servlet Struts Controller enverrait différentes demandes à différents threads de la même manière qu'un serveur Web, juste au niveau du servlet au lieu du niveau du conteneur. J'imagine que les frais généraux étaient minimes. Ce qui a tendance à être le plus lent, ce sont les appels à la base de données. 2e plus lent, construction du HTML et retour au client. À l'époque, il était courant d'utiliser un serveur distinct pour le contenu statique pour la vitesse, donc cela a fonctionné.
GlenPeterson
4

Je vous suggère de vous familiariser avec JSP de base et les servlets, car cela vous aidera à comprendre les concepts simplifiés au printemps. Étant donné que vous avez de l'expérience avec les CGI basés sur PHP, la plupart des JSP / Servlets auront juste différentes façons de faire les choses que vous connaissez donc cela devrait aller assez rapidement. La chose la plus difficile à trouver sera de saisir les idiomes uniques du monde java.

En ce qui concerne Hibernate, je suis d'accord avec MebAlone et je dis: apprenez-le si vous en avez besoin, mais s'il est déjà configuré, vous pouvez faire 90% de ce dont vous aurez besoin en ne faisant que criber ce que les autres ont fait.

Ed Griebel
la source
2

Il semble que vous souhaitiez apprendre le développement Web côté serveur avec Java. Il existe un certain nombre de cadres. Spring MVC est en fait le plus populaire, il est mature, très complet et un bon cadre à connaître. Spring MVC et d'autres frameworks web java font abstraction de l'API de servlet java du programmeur - donc techniquement, vous n'avez pas besoin de le savoir. Mais je suggérerais d'apprendre les bases - en particulier les classes clés. Une journée d'étude devrait vous y amener.

Quant à JSP, si vous connaissez PHP, vous comprenez déjà l'essentiel. JSP est la version java des scripts côté serveur.

Hibernate est une implémentation (la plus populaire) de JPA, qui est la spécification java pour les objets persistants dans RDBMS. Avec l'explosion de la popularité des bases de données NOSQL (Hadoop, Mongo, etc.), Hibernate est beaucoup moins incontournable qu'il y a 18 mois. Personnellement, j'apprends les technologies de stockage selon les besoins car il y en a beaucoup et vous perdez ce que vous n'utilisez pas.

MebAlone
la source
Quel livre pourriez-vous suggérer pour Spring MVC? quelle est la différence entre Spring et Spring MVC?
KyelJmD
Spring est une pile technologique java qui comprend une grande variété de projets. Spring MVC est le framework web côté serveur. La documentation en ligne et les exemples d'applications de Spring sont le meilleur moyen d'apprendre Spring MVC.
MebAlone
2

Réponse courte: non, vous n'avez pas besoin d' apprendre les servlets et les JSP comme pré-requis pour Spring MVC et de nombreux autres frameworks Web Java.

Sortons Hibernate de l'image en premier. C'est un framework de couche de persistance et cela n'a rien à voir avec les servlets et les JSP.

L'API Servlet est le niveau le plus bas pour presque tous les frameworks Web Java. Même les JSP sont compilés en servlets.

Spring MVC est une couche au-dessus de l'API Servlet avec de nombreuses extensions utiles et une intégration avec Spring Core. Vous pouvez utiliser les JSP comme mécanisme de rendu pour Spring MVC. Le tutoriel Spring MVC vous guidera de bout en bout pour créer des applications Web. Au fur et à mesure, vous découvrirez les JSP et vous serez également bien équipé pour comprendre l'API Servlet.

Yuriy Zubarev
la source
quel livre ou tutoriel vidéo suggéreriez-vous pour apprendre Spring MVC?
KyelJmD
1
@YuriyZubarev - Je ne vois pas comment cela répond à la question. Bear Bibeault, un développeur et des auteurs bien connus insistent pour que l'on apprenne JSP et Servlets avant d'apprendre N'IMPORTE QUEL cadre. Voulez-vous montrer pourquoi cela peut ou non s'appliquer aujourd'hui? Voici son article - coderanch.com/t/521300/JSP/java/JSP-servlets-struts
Borat Sagdiyev
-1

il semble que vous êtes coincé sur un problème auquel j'ai été confronté récemment. Mon objectif était d'apprendre le développement côté serveur avec Java. J'ai donc commencé avec les servlets, compris leur fonctionnement et écrit quelques programmes simples à exécuter sur le serveur TomCat. TomCat, est une condition préalable. Vous devriez certainement être familier avec TomCat si vous voulez continuer. En ce qui concerne struts2 ou Spring, struts2 et spring sont des frameworks construits sur des servlets, ce qui rend indispensable une compréhension approfondie des servlets si vous voulez être solide sur les bases. J'ai commencé avec des tutoriels Java Brains. Pour un débutant, ces tutoriels sont incroyables. Certaines œuvres de Jakob Jenkov sur son blog sont également incroyables. Struts2 et Spring deviennent plus simples lorsque vous connaissez des servlets. En ce qui concerne l'hibernation, je vous suggère de commencer par être très familier avec JDBC. Allez pas à pas, servlets, entretoises, JDBC, Spring, Hibernate. J'espère que ma réponse vous aidera :).

Chan_k
la source
ce post est assez difficile à lire (mur de texte). Pourriez-vous le modifier sous une meilleure forme?
moucher