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


103

Mon objectif est de créer des applications web!

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

Parce que ce sujet (les applications Web) est si vaste et compliqué, je voudrais demander ce que je devrais 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: Commencer la plate-forme Java EE 6 avec GlassFish 3: Du novice au professionnel ou devrais-je simplement faire quelques tutoriels en ligne?

Merci!


1
J'ai lu les deux fils. Mais encore une fois: dans les threads, ils disent seulement "apprenez Tomcat, JBoss, Hibernate, apprenez ceci ou cela, etc ..." Juste en jetant des mots. Mais je veux savoir quel livre ou tutoriel spécifique je devrais lire. Peut-être qu'il n'y a pas de tel moyen et je dois l'apprendre «de manière inefficace» en regardant chaque mot vers le haut. J'espérais juste avoir un conseil sur la façon de procéder.
creativz

1
Je vous recommande de commencer avec les servlets Head First et JSP à condition que vous ayez une bonne connaissance du noyau Java. Si vous n'êtes pas à l'aise avec Java en tant que langage de programmation, vous devez d'abord acquérir des connaissances pratiques et ensuite procéder au développement d'applications Web.
Rachel

22
Sauf que toutes ces questions sont dépassées puisque Java EE 6 est sorti ...
Pascal Thivent

4
@Stephen Eh bien, je pense en fait qu'il y a un grand écart, en particulier sur le Web Part (avec Servlet 3.0 ou JSF 2.0 et les beans gérés par CDI).
Pascal Thivent

1
C'est drôle de voir combien de questions générales votées comme celle-ci sont classées comme "non constructives". Je dirais qu'ils sont très constructifs, mais il n'est pas facile de répondre de manière constructive. Ils aident à avoir une vue d'ensemble de ce que l'on fait ou devrait faire. Mais c'est bien qu'ils soient autorisés à rester sur SO.
jackthehipster

Réponses:


174

Même si je sais que cela sera controversé, mon conseil serait de commencer avec Java EE 6 uniquement. Alors, prenez GlassFish v3 et obtenez le livre Beginning Java EE 6 Platform with GlassFish 3: From Novice to Professional ou suivez le didacticiel Java EE 6 . À mon avis, le livre (que j'ai commencé à lire donc 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 plate-forme Java EE et ses API et l'environnement pour construire, déployer vos applications).

Maintenant, comme je l'ai dit, je peux déjà entendre des voix dire des choses comme "Java EE est lourd, utilisez Spring à la place, apprenez Struts ou Wicket ou Stripes pour la couche de présentation, apprenez Hibernate pour la persistance, ou pas parce que je n'aime pas ORM, utilisez plutôt iBatis ou Straight JDBC (vous verrez, c'est cool avec Spring, Spring est tellement cool), 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 de très belles 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.), parce que ces API sont toutes plus que décentes, parce qu'il n'y a rien de vraiment mal à les apprendre, parce que c'est déjà une grosse tâche, parce qu'il faut commencer quelque part , je me concentrerais uniquement sur Java EE 6 et oublierais le d'autres frameworks pour l'instant. Plus précisément, je commencerais par le profil Web Java EE 6 (puis j'ajouterais des éléments si vous voulez aller plus loin).

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


3
Merci. En ce qui concerne le livre, je ne l'ai pas lu entièrement mais je le recommanderais sans hésiter aux développeurs novices et expérimentés qui souhaitent avoir un bon aperçu de Java EE 6. Le livre est bien construit, il couvre vraiment de nombreuses API (pas beaucoup manquent), il contient des exemples de code démontrant tout ce qui est présenté, ils sont vraiment didactiques et permettent d'aller aussi loin que vous le souhaitez. Il y aura peut-être des livres plus ciblés dans le futur, mais c'est un bon.
Pascal Thivent

23
+1, mais le printemps est tellement cool :-)
ChssPly76

13
Ne vous méprenez pas, Stripes, Spring, Hibernate, ... sont super. Mais trop de choix peut être déroutant lors de la découverte de quelque chose de nouveau et je pense que Java EE 6 vous permet de démarrer sans eux.
Pascal Thivent

9
Je suis d'accord avec vous, il est très important d'apprendre la pile JEE même si vous n'en utiliseriez pas, après tout cette pile est la base de tous les fabuleux frameworks qui rendent les choses vraiment géniales, par exemple Wicket est construit au-dessus de le concept de Front Controller qui dans le monde Java signifie Servlets et Filtres - si vous ne savez pas comment ils fonctionnent, vous ne comprendrez pas vraiment ce que fait Wicket non plus! A moins que vous n'acceptiez la "magie!" comme réponse, bien sûr.
Esko du

13
Plus de 4 ans plus tard ... changeriez-vous quelque chose à votre réponse?
jlars62

28

Mon conseil 1 est d'arrêter de lire des livres et de commencer à mettre en œuvre des choses. D'après mon expérience, l'apprentissage du livre n'est pas un 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 d'autres 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.


29
Mais cela pourrait vous épargner des jours de recherche. Pourrait également vous donner suffisamment de connaissances pour répondre à la question au lieu de leur poser et éventuellement avoir une grande réputation ici, n'est-ce pas?
Muhammad Gelbana

6
Non, je ne suis pas d'accord. L'OP a déjà lu deux livres Java / Java EE. Il est temps pour lui de faire de la programmation. FWIW, je n'ai pas tiré la plupart de mes connaissances de la lecture de livres. Je l'ai plutôt obtenu PRIMAIREMENT en implémentant des choses et en me référant à la documentation quand j'en avais besoin. On n'apprend pas à faire du vélo en lisant des livres ... et on n'apprend pas non plus les compétences en programmation de cette façon.
Stephen C

3
Il est important d'équilibrer readinget practice.
smwikipedia

9

Java EE 6 est vraiment incroyable. Le seul problème est qu'il a environ 2 semaines et qu'il n'y a actuellement qu'un seul conteneur offrant 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, le Servlet 3.0, les nouveaux types de Bean, JPA 2, etc.

Ainsi, en apprenant d'abord Java EE 6, vous vous limitez simplement à un seul conteneur. D'autres sont à venir, 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 n'a pas d'EJB par exemple).

Je ne peux penser à rien dans Java EE 5 qui n'ait pas été transféré à Java EE 6. Java EE 6 a rendu certains aspects très anciens facultatifs, et ceux que vous n'apprendriez tout simplement pas aujourd'hui. Java EE 6 a rendu certaines choses Java EE 5 encore plus faciles (packaging notamment, EJB Lite par exemple).

Apprenez Java EE 5 maintenant afin de pouvoir 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 pourrez peut-être pas 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 base, mais pour tout ce qui dépasse quelques pages ou points de terminaison, vous voudrez utiliser l'un des nombreux frameworks tiers, ou JSF, et aucun livre ne couvre le noyau, puis un framework sur le dessus de ça.

Le didacticiel Java EE 5 est bon pour jeter les bases, mon principal reproche est qu'il ne vous montre 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 didacticiel. J'ai trouvé que les livres Head First étaient plutôt 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 faire un saut vers un cadre tiers.

Je suis un grand fan de Stripes pour un framework Action (par rapport à un framework de composants), et le seul livre Stripes disponible est excellent (ce qui en fait un choix facile).

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

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


2
La question est de savoir quel est l'état des serveurs d'applications lorsque vous êtes prêt pour la production. Si un projet donné prend 6 mois à partir de maintenant, Oracle et JBoss ont très probablement des serveurs compatibles JEE6, et Resin a très probablement un serveur de profil Web JEE6.
Thorbjørn Ravn Andersen

Eh bien, JBoss est attendu en décembre. Oracle est bas. Resin est resté silencieux concernant la mise en œuvre de son profil Web. Geronimo opte pour le profil Web avec 3.0 (bêta). Glassfish est sorti en 3.0.1, ce qui est vraiment sympa.
Thorbjørn Ravn Andersen

5

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 d'applications Web, ainsi que les chapitres sur l'API et les JSP des servlets.

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

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


3

Je ne commenterai pas les autres technologies, mais si vous voulez apprendre Hibernate, procurez-vous "Hibernate Made Easy" de Cameron McKenzie (www.hiberbook.com). Cela vaut chaque centime. Vous pouvez finir de lire 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

Jpassion fournit de bonnes vidéos et du matériel pour apprendre Java EE 6 et d'autres choses.

Vous devriez également voir des exemples d'applications:

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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.