Développement Web Java EE, par où commencer et de quelles compétences ai-je besoin? [fermé]

216

Je veux apprendre, au moins au niveau de base, comment créer des applications Web Java (provenant d'un arrière-plan .NET). J'aimerais pouvoir construire, déployer une application de type CMS simple à partir de zéro.

De quoi ai-je besoin exactement?

Tomcat semble être un bon serveur Web pour Java.

Quelles sont les options pour le Web? Je sais qu'il y a Hibernate pour un ORM.

Java a-t-il MVC? Et JSP ? MVC et JSP peuvent-ils être ensemble? NetBeans ?

Peut-être un livre qui couvre tout cela?

mrblah
la source

Réponses:

261

(Mise à jour mars 2020)

Tout d'abord, "Java EE" est depuis septembre 2019 renommé " Jakarta EE ", à partir de la version 8. Historiquement, il y avait aussi le terme "J2EE" qui couvrait les versions 1.2 à 1.4. Les "Java EE" couvraient les versions 5 à 8. Voir aussi Java Platform, Enterprise Edition, History sur Wikipedia .

De quoi ai-je besoin exactement?

Je suppose que vous connaissez déjà les technologies côté client comme HTML , CSS et JS , donc je n'entrerai pas dans les détails. Je suppose également que vous connaissez déjà Java de base. Suivez les didacticiels Java d' Oracle et, si possible, procurez-vous également un livre ou un cours OCP .

Ensuite, vous pouvez commencer avec JSP / Servlet pour apprendre les concepts de base du développement Web Java. Vous trouverez de bons didacticiels dans les chapitres 3 à 8 du didacticiel Java EE 5 d' Oracle et sur Coreservlets.com ( débutant-intermédiaire et avancé, également JDBC ). Notez que depuis Java EE 6, JSP est supprimé du tutoriel Java EE au profit de JSF et que JSP n'a pratiquement pas changé depuis lors. C'est pourquoi vous pouvez utiliser en toute sécurité le didacticiel Java EE 5 assez ancien pour cela. La chose la plus importante en ce qui concerne JSP est le fait que l'écriture de code Java brut dans des fichiers JSP à l'aide de <%scriptlets %>est officiellement déconseillée depuis 2003. Voir aussi Comment éviter le code Java dans les fichiers JSP? Donc, tous les didacticiels qui couvrent encore les scriptlets doivent être ignorés car ils vous entraîneront certainement dans une spirale descendante d'apprentissage des mauvaises pratiques.

Ici, sur Stack Overflow, vous pouvez également trouver de belles pages wiki sur JSP , Servlets , JSTL et EL où vous pouvez en apprendre l'essentiel et trouver des liens plus utiles.


Tomcat semble être un bon serveur Web pour Java.

C'est. Il est cependant limité en capacités. Il s'agit essentiellement d'un conteneur de servlet barebones, implémentant uniquement les parties JSP / Servlet de l'énorme API Java EE. Si jamais vous souhaitez passer à EJB ou JPA, alors vous souhaitez en choisir un autre, par exemple WildFly , TomEE , Payara , Liberty , WebLogic , etc. Sinon, vous devez utiliser Spring au lieu de Java EE. Il n'est pas possible d'installer EJB dans un conteneur de servlet barebones sans modifier le moteur principal, vous auriez en cas de Tomcat réinventer TomEE. Voir aussi Qu'est-ce que Java EE exactement? , Comment installer et configurer correctement les bibliothèques JSF via Maven? et Comment installer et utiliser CDI sur Tomcat?


Je sais qu'il y a Hibernate pour un ORM.

Auparavant, à l'ère J2EE, lorsque JPA n'existait pas et que EJB2 était terrible, Hibernate était un framework autonome et souvent utilisé en combinaison avec Spring pour supplanter EJB. Depuis l'introduction de JPA dans Java EE 5 (2006), Hibernate est devenu une implémentation JPA. Vous pouvez apprendre JPA à Jakarta EE tutorial part VIII . En outre, EJB3 a été beaucoup amélioré sur la base des enseignements tirés du printemps. Voir aussi Quand est-il nécessaire ou pratique d'utiliser Spring ou EJB3 ou tous ensemble?


Java a-t-il MVC? Et JSP? MVC et JSP peuvent-ils être ensemble? JavaBeans?

Vous pouvez , mais c'est beaucoup de réinvention de la roue quand il s'agit de lier le modèle à la vue (conversion, validation, changement d'écouteurs, etc.). Le framework MVC de Java EE est appelé JSF . Avant Java EE 6, il fonctionnait sur JSP, qui est une technologie de vue assez ancienne. JSP a été remplacé par Facelets . Vous pouvez apprendre JSF à Jakarta EE tutorial part III chapitres 7 - 17 . Vous pouvez également utiliser JSF sur Tomcat, vous n'avez qu'à l'installer séparément. Les instructions d'installation peuvent être trouvées sur la page d'accueil de Mojarra. WildFly, TomEE, Payara, Liberty, WebLogic, etc. comme étant une implémentation complète de Java EE fournissent déjà JSF (et CDI, BV, JSONP, JAX-RS, EJB, JPA, etc.) hors de la boîte, donc vous n'avez pas besoin de installez-le séparément. Voir aussi Comment installer et configurer correctement les bibliothèques JSF via Maven?


Peut-être un livre qui couvre tout cela?

Il existe plusieurs livres. Je recommanderais de commencer par un livre axé sur Jakarta EE en général , un livre plus axé sur JSF et un livre plus axé sur JPA . Assurez-vous de choisir le livre le plus récent couvrant le sujet. Recherchez d'abord la version disponible la plus récente, puis assurez-vous que le livre choisi le couvre. Par conséquent, ne choisissez certainement pas un vieux livre pour Java EE 5 ou JSF 1.0, alors qu'il existe déjà Jakarta EE 8 et JSF 2.3.

Enfin et surtout, veuillez ignorer les sites de grattage d'extraits de code gérés par des amateurs, qui se concentrent principalement sur les revenus publicitaires plutôt que sur l'enseignement, tels que roseindia, tutorialspoint, javabeat, journaldev, javatpoint, codejava, etc. Ils sont facilement reconnaissables en perturbant les liens publicitaires / des bannières et des extraits de code JSP contenant des scriptlets .

Voir également:

BalusC
la source
Greate! utile, merci. Dans .Net, généralement le livre de Wrox Press peut couvrir toutes les connaissances en .net. Un livre très épais.
gfan
5
Est-ce que StackOverflow n'a pas de fonctionnalité de publication de broches? J'aimerais que ce soit le cas, afin que je puisse épingler cette réponse. Merci!
dww
Il DOIT y avoir une alternative au tutoriel JavaEE 5. Je sais que je suis un noob, et vous êtes vraiment très bon dans ce domaine. Mais ... Essayer d'apprendre de ce tutoriel. Son très verrouillé et dépend de certains paramètres. J'ai donc besoin d'apprendre NetBeans. Ensuite, je dois abandonner mon serveur et passer progressivement à Glassfish, en essayant de trouver le code d'échantillonnage à exécuter et à apprendre de ce qui n'a pas été le plus simple. Je ne pouvais pas courir sur le serveur. à la place, j'ai rencontré quelque chose appelé maven build. Je pensais avoir essayé, ce qui a entraîné l'éclipse en devenant fou! apparemment, j'ai aussi besoin d'apprendre maven, et ce, que l'autre et le grand-père du diable ...
brat
@brat: la réponse contient des liens vers des alternatives et des livres.
BalusC
Bien. Un seul qui couvre beaucoup. Coreserv ... J'ai dû récupérer des extraits ici et là. Je suis allé à fond avec le tut officiel JavaEE maintenant :) Juste pour découvrir le SDK qu'il faut télécharger, pour exécuter l'exemple de code a un serveur GlassFish qui ne fonctionne pas avec JDK 10 :(, NullPointerException au démarrage. A trouvé un hack stackoverflow.com / questions / 47458119 /… et donc j'ai besoin de télécharger ... et ainsi de suite et ainsi de suite. noobs x). Cheers :)
brat
28

De quoi ai-je besoin exactement?

Au minimum,

  • Java le langage
  • Java l'API, y compris JDBC pour l'accès à la base de données
  • Un IDE, ou un éditeur de texte + Ant
  • Java EE, essentiellement, servlets et JSP
  • Un conteneur de servlet (tel que Tomcat)

Tomcat semble être un bon serveur Web pour Java.

C'est "décent". Si vous n'êtes pas amateur d'EJB, vous n'aurez probablement pas besoin d'apprendre autre chose. Glassfish 3 semble être assez cool ces derniers temps, mais je n'ai pas encore beaucoup joué avec. Notez que c'est "plus" qu'un serveur Web. Il s'agit d'un conteneur de servlet (ce qui signifie qu'il peut exécuter des applications à l'aide de la technologie de servlet).

Quelles sont les options pour le Web?

Environ un million de cadres différents. Vraiment, en choisir un est vraiment "difficile". Il est très tentant de les essayer tous, mais finalement impossible.

Je sais qu'il y a hibernation pour un ORM.

Je suis un peu anti-ORM, mais Hibernate est ce dont vous avez besoin si vous avez besoin d'un ORM "complet". Vous pouvez également essayer des ORM "partiels", tels que le support JDBC de Spring ou iBatis.

Java a-t-il MVC? qu'en est-il de JSP? MVC et JSP peuvent-ils être ensemble? des haricots?

Oui, la plupart des frameworks Web Java font MVC. Le MVC de Spring est sympa, mais je ne peux rien recommander d'autre (surtout pas Struts 1!). JSP n'est qu'un moteur de modèles HTML (ou XML). JSP à l'ancienne, avec du code Java intégré n'est pas cool; JSP moderne avec des fichiers de balises et des bibliothèques est assez bon.

Je suppose que la plupart des frameworks vous permettront d'utiliser JSP pour rendre vos Vs; Le MVC et les Struts de Spring le font. Certains vous permettront également d'utiliser autre chose (Velocity, Freemarker, etc.).

Beans n'est qu'une convention pour les objets. Fondamentalement, cela signifie que vous utilisez des getters et setters (ou des alternatives) et que vous suivez certaines règles. Ceux-ci devraient permettre à votre objet d'être manipulé par certains outils. L'exemple typique est une interface graphique, certains outils vous permettront de créer des composants GUI pour éditer des beans arbitraires (c'est-à-dire qu'ils rendront un formulaire pour éditer ses champs).

alex
la source
16

Vous avez besoin de HTML, CSS et JavaScript - tous les suspects habituels pour le développement Web.

Tomcat a un serveur Web intégré, mais c'est un moteur servlet / JSP . Apache est le serveur Web pur.

Vous devez apprendre JSP, qui est un langage de modèle pour générer des servlets qui génèrent une sortie HTML. Vous voudrez les écrire en utilisant JSTL, pas des scriptlets.

Si vous utilisez des applications CRUD, vous devrez apprendre JDBC et les bases de données relationnelles. Vous devriez le faire avant d'essayer Hibernate ou tout autre ORM, car c'est la base sur laquelle ils sont construits.

Les JavaBeans ne sont que des normes pour les objets Java.

Si vous êtes prêt, je recommanderais le framework Spring.

duffymo
la source
vous dites que tomcat a un serveur web intégré, qu'est-ce que c'est alors? je pensais que c'était un serveur web?
mrblah
6
@mrblah - Tomcat est un moteur de servlet. Il a été conçu pour traiter les classes de servlets (qui sont les jsp transformés) et servir la sortie à un navigateur. Parallèlement à cela, il sert également tous les fichiers réguliers (images, html, css, etc.) tout comme le fait un serveur Web. Il est comparable à Apache avec un module php.
Nemi
13

Java a-t-il MVC?

Java a différents cadres comme Struts2 , Spring MVC

qu'en est-il de JSP?

JSP est une bibliothèque de modèles. Il existe peu d'alternatives que vous pouvez essayer comme FreeMarker et Velocity . AFAIK Freemarker est une nouvelle bibliothèque de modèles émergente. C'est léger que JSP . Consultez ce FreeMarker : une alternative ouverte à JSP - JavaWorld

MVC et JSP peuvent-ils être ensemble?

Je prends MVC comme cadre mentionné précédemment. Tous les frameworks prennent en charge JSP mais vous devez vérifier la prise en charge des autres bibliothèques de modèles dans la documentation des frameworks respectifs. AFAIK Struts2 a un très bon support pour Freemarker.

des haricots?

Je n'en sais pas grand-chose. Mais en utilisant des beans, nous pouvons directement mapper des données de formulaire vers des bases de données.

Peut-être un livre qui couvre tout cela?

Chaque framework a son propre livre. Pour Struts2 - Struts 2 en action

String MVC - Jetez un œil à ces questions recommandant des livres pour Spring et Spring MVC. Suggestion de livre pour le framework Spring et Spring Books: lequel choisir

Fremarker a une très bonne documentation - FreeMarker Manual

Pour commencer le développement Web en Java -

texte alternatif

http://www.amazon.com/SCWCD-Exam-Study-Kit-Certification/dp/1930110596

Xinus
la source
5

Je considère que la plupart des options de développement Web Java traditionnelles sont assez lourdes, et il existe de bonnes alternatives:

  • Play est un framework MVC qui vise à être léger, simple et permettant un développement rapide - tout en restant avec du Java pur, par opposition à un langage basé sur JVM plus dynamique. C'est assez nouveau mais déjà impressionnant, et une bonne communauté s'est rapidement développée autour de lui.

  • Grails est un framework MVC, inspiré de Ruby on Rails, qui est écrit et utilise Groovy , un langage de script basé sur Java. Grails est mature, robuste et largement respecté, avec une communauté forte. Groovy est essentiellement un sur-ensemble de Java, avec une meilleure syntaxe et quelques fonctionnalités intéressantes telles que les fermetures, donc l'apprendre est un excellent moyen d'apprendre Java.

  • Si vous avez besoin / souhaitez créer des sites Web / services / applications RESTful , Restlet est un cadre fantastique - je suis un grand fan. C'est simple, direct et pourtant flexible. Grande communauté aussi.

  • L'App Engine de Google est également une option intéressante. Il est hébergé, ce qui peut ou non être intéressant, mais il a une API assez simple et un bon SDK.

Je suis sûr qu'il y en a d'autres, mais ce sont ceux auxquels je peux penser du haut de ma tête.

Bonne chance et amusez-vous bien!

Avi Flax
la source
Oh, et je viens de découvrir Prudence l'autre jour: threecrickets.com/prudence
Avi Flax
3

Je suis une programmation PHP / C et j'ai trouvé groovy me permettre de sauter dans Java sans apprendre toutes les classes et paradigmes inhérents à la programmation java. Groovy m'a permis d'être productif rapidement, tout en prenant le temps d'en savoir plus sur java et tous les outils / frameworks / bibliothèques disponibles.

mr-sk
la source
3

Si vous n'avez pas l'habitude de travailler avec html, css, xml, javascript etc.

Essayez le framework Vaadin , il est bien documenté, facile à apprendre et permet de faire une belle interface utilisateur de manière simple. (il suffit d'écrire du code Java, bien sûr, vous avez besoin d'un serveur de servlet, Tomcat ou Jetty ira bien)

mokrzu
la source
2

Mieux vous apprenez java.Then vous apprenez Servlets et JSP.Ensuite, allez pour MVC, vous allez à Struts ou Spring ou tout autre framework compatible java / java.

SIVAKUMAR.J
la source
0

Comme vous êtes nouveau sur Java, je vous recommande fortement d'apprendre d'abord le langage de base. Cela vous aidera quelle que soit la technologie dans laquelle vous choisissez de faire votre application Web.

Une bonne ressource en ligne est le tutoriel Sun Java - http://java.sun.com/docs/books/tutorial/

Thorbjørn Ravn Andersen
la source