web-dev-qa-db-fra.com

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

J'ai demandé à beaucoup de gens par où commencer à apprendre Java développement web, 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.?

17
KyelJmD

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 Java qui sert une requête. C'est tout. Le framework Struts original était un seul servlet.

J'ajouterais Tomcat ou Jetty à votre liste de technologies à apprendre. Tomcat est l'original Java Implémentation du conteneur de servlets et s'avère également être un serveur Web complet et plutôt populaire. GlassFish est construit par-dessus. J'ai utilisé Jetty au lieu de Tomcat dans mon les nouveaux projets, car ils sont plus simples, plus flexibles et plus rapides. 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 à des requêtes 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. Faites ensuite un javax.servlet.http.HttpServlet qui écrit "<html> <head> <title> Salut </title> </head> <body> <h1> Hello World </h1> </body> </html> "à l'objet de réponse, répertoriez-le dans votre Tomcat web.xml et envoyez 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 Bonjour Jetty exemple.

Si vous allez juste créer un blog ou un site de commerce électronique standard, je commencerais par SquareSpace ou Wordpress ou quelque chose. 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 est 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 vous devez utiliser Hibernate, puis un framework comme Spring brille vraiment. Spring 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 encore 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). Après vous être familiarisé 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.

17
GlenPeterson

Je vous suggère de vous familiariser avec le JSP de base et les servlets car cela vous aidera à comprendre les concepts simplifiés au printemps. Comme 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 que vous puissiez trouver sera de ramasser les idiomes uniques dans le monde Java.

En ce qui concerne Hibernate, je suis d'accord avec MebAlone et 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.

4
Ed Griebel

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 autres Java frameworks web font abstraction de l'API Java servlet 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 vers RDBMS. Avec l'explosion de la popularité des bases de données NOSQL (Hadoop, Mongo, etc.), Hibernate est beaucoup moins de "must know" qu'il y a 18 mois. Personnellement, j'apprends les technologies de stockage sur la base du besoin de savoir car il y en a beaucoup et vous perdez ce que vous n'utilisez pas.

2
MebAlone

Réponse courte: non, vous n'avez pas besoin de apprendre les servlets et les JSP en tant que pré-requis pour Spring MVC et de nombreux autres frameworks Web Java 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 de 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.

2
Yuriy Zubarev