web-dev-qa-db-fra.com

Que faut-il apprendre pour créer des applications Web Java Java dans Java EE 6?

Mon objectif est de faire des applications web!

J'ai fini de lire les livres "Headfirst - Java" et "Headfirst - Servlets and JSP".

Parce que ce sujet (applications Web) est si vaste et compliqué, je voudrais demander ce que je dois apprendre ensuite. Je me sens surmené quand je lis des mots clés comme Java EE, EJB, JSF, JPA, Glassfish ... mais je n'abandonnerai pas.

Quelqu'un peut-il me dire comment je dois procéder pour apprendre? Dois-je prendre un livre comme celui-ci: Beginning Java EE 6 Platform with GlassFish 3: From Novice to Professional ou dois-je simplement faire des didacticiels en ligne?

Merci!

103
creativz

Même si je sais que cela sera controversé, mon conseil serait de commencer par Java EE 6 uniquement. Alors, prenez GlassFish v3 et récupérez le livre Beginning Java EE 6 Platform with GlassFish 3: From Novice to Professional ou suivez le Java EE 6 tutorial . À mon avis, le livre (que j'ai commencé à lire Je sais de quoi je parle) fournit plus de conseils qui pourraient être préférables si "tout" est nouveau pour vous (il couvre à la fois la plateforme Java EE et ses API et l'environnement pour construire, déployer vos applications).

Maintenant, comme je l'ai dit, j'entends déjà des voix dire des choses comme "Java EE est lourd, utilisez plutôt Spring, apprenez Struts ou Wicket ou Stripes pour la couche de présentation, apprenez Hibernate pour la persistance, ou pas parce que je ne ' t comme ORM, utilisez iBatis ou JDBC droit à la place (vous verrez, c'est cool avec Spring, Spring is so cooool), et utilisez Tomcat (et pourquoi pas Jetty), ou JBoss, ou oubliez tout cela et optez pour Grails, et bla bla bla ... ".

Mais je ne pense pas que cela vous aide vraiment et, sans mentorat ni conseils (et vous ne trouverez pas de ressource unique non obsolète couvrant toutes les combinaisons), cela doit sembler très déroutant pour un débutant.

Donc, parce que je pense que Java EE 6 est une grande amélioration par rapport aux versions précédentes de Java EE, car il fournit vraiment Nice API standard pour tous vos besoins (Servlet 3.0, JSF 2.0, JPA 2.0, EJB 3.1 lite, Bean Validation 1.0, CDI, etc.), car ces API sont toutes plus que décentes, car il n'y a rien de vraiment mal à les apprendre, car c'est déjà une grosse tâche, car il faut commencer quelque part , je me concentrerais sur Java EE 6 uniquement et j'oublie les autres frameworks pour l'instant. Plus précisément, je commencerais par Java EE 6 Web Profile (puis ajouter des choses si vous voulez aller plus loin) ).

En faisant cela, 1) vous commencerez et vous apprendrez de nouvelles choses et 2) vous donnerez un peu de temps à tous les autres cadres et/ou outils pour s'adapter et prouver qu'ils sont toujours nécessaires. Et s'il y en a, il sera encore temps d'expérimenter les survivants et vous pourrez mieux comprendre pourquoi ils existent.

172
Pascal Thivent

Mon conseil1 est d'arrêter de lire des livres et de commencer à implémenter des trucs. D'après mon expérience, l'apprentissage du livre n'est pas un bon substitut aux connaissances que vous obtenez en faisant des choses.


1 - Contexte: il s'agit d'un conseil à quelqu'un qui vient de terminer la lecture de deux livres sur le sujet et qui cherche plus de livres à lire. En pratique, vous devez équilibrer la lecture et l'action. Surtout si vous avez un problème spécifique que vous essayez de résoudre.

28
Stephen C

Java EE 6 est vraiment incroyable. Le seul problème est qu'il a environ 2 semaines et qu'il n'y a qu'un seul conteneur offrant actuellement ses fonctionnalités - Glassfish.

Je n'ai rien contre Glassfish, je l'utilise partout, plusieurs instances de production, j'adore le produit et le projet.

Cela dit, les détails de Java EE 6 ne se traduisent pas en Java EE 5. Certains le font, beaucoup le font, mais le profil Web, Servlet 3.0, les nouveaux types de Bean, JPA 2, etc. Ceux-ci ne sont pas là.

Donc, en apprenant Java EE 6 d'abord, vous vous limitez simplement à un seul conteneur. D'autres arrivent, mais ils ne sont pas encore là.

Tomcat, JBoss, OpenEJB, Glassfish, Jetty, Resin, Geronimo, etc. fonctionnent tous bien avec la spécification Java EE 5 (au moins les parties de la spécification qu'ils prennent en charge, Tomcat ne fonctionne pas). avoir EJB par exemple).

Je ne peux penser à rien dans Java EE 5 qui n'a pas été reporté à Java EE 6. Java EE 6 a rendu certains aspects très anciens facultatifs, et ceux que vous ne pourriez tout simplement pas apprendre aujourd'hui de toute façon. Java EE 6 a rendu certains Java EE 5 choses encore plus faciles ( notamment l’EJB Lite).

Apprenez Java EE 5 maintenant afin que vous puissiez réellement appliquer ce que vous apprenez dans une variété d'environnements, plutôt que d'apprendre Java EE 6 maintenant et de découvrir que vous ne pouvez pas être capable d'utiliser une grande partie de ce que vous apprenez.

Aucun livre ne vous apprendra ce que vous devez savoir. Les servlets, par exemple, sont une bonne fondation, mais pour tout ce qui dépasse deux pages ou un point de terminaison, vous voudrez utiliser l'un des nombreux cadres tiers, ou JSF, et aucun livre ne couvre le cœur, puis un cadre au-dessus de ça.

Le tutoriel Java EE 5 est bon pour jeter les bases, ma principale plainte est qu'ils ne vous montrent pas le code source. Ils s'attendent plutôt à ce que vous le téléchargiez et l'exécutiez. Ce n'est pas discuté dans le tutoriel. J'ai trouvé les livres Head First très bons.

Pour la programmation Web, les servlets bruts sont suffisamment importants pour comprendre le cycle de demande/réponse, mais vous n'avez pas besoin d'une compréhension approfondie pour passer à un cadre tiers.

Je suis un grand fan de Stripes pour un framework Action (vs un framework de composants), et le seul livre Stripes disponible est excellent (ce qui rend le choix facile).

Je ne peux pas suggérer un livre de framework de composants, et je ne recommanderais pas en fait un de suite. Les frameworks de composants enterrent vraiment les structures de requête/réponse de base HTTP. Ils les enterrent pour une raison, et ils gagnent de la valeur EN les enterrant, mais je crois que pour être efficace, vous devez avoir une solide compréhension de ces concepts dès le début. C'est pourquoi je ne suggère pas d'apprendre un cadre de composants en premier.

Le framework JAX-RS REST, inclus dans Java EE 6, mais facilement installable dans Java EE 5 ou tout servlet) conteneur, est excellent. C'est sans doute ce que aurait dû être Servlet 3.0. Mais je ne connais aucun livre pour ça.

9
Will Hartung

Pour Tomcat, lisez le manuel sur le site Web. C'est très bien. En particulier, les premiers chapitres sur l'organisation et le déploiement des applications Web, et les chapitres sur l'API Servlets et les JSP.

Pour le printemps, le livre Manning Spring in Action est très bon. De même pour Hibernate (le livre Manning) mais je pense qu'Hibernate est principalement en dehors du champ d'application des webapps. Votre appel, cependant.

Wicket - Livre de Manning également. Mais vraiment, écrivez simplement votre code frontal en Javascript. Ce sera moins douloureux, OMI.

5
danben

Je ne commenterai pas les autres technologies mais si vous voulez apprendre Hibernate, obtenez "Hibernate Made Easy" par Cameron McKenzie (www.hiberbook.com). Cela vaut chaque centime. Vous pouvez terminer la lecture de ce livre en 2 jours (littéralement). c'est comme un roman et à la fin vous vous retrouvez face à Hibernate comme un Semi-Pro.

3
motiver

Jpassion fournit de bonnes vidéos et du matériel à apprendre Java EE 6 et d'autres trucs).

Vous devriez également voir des exemples d'applications:

  1. Petstore . Nécessite Maven, Glassfish recommandé. Écrit par Antonio Goncalves qui a écrit le mentionné livre .
  2. JBoss Ticketmonster . Nécessite Maven & Jboss Forge . Déployer dans Jboss.
3
jacktrades

Si vous souhaitez simplement créer des applications Web en Java, consultez le Play Framework . Il est similaire à "Ruby on Rails"

2
Apeirogon Prime