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

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

De quoi exactement ai-je besoin pour apprendre?

Tomcat semble être un bon serveur Web pour Java.

Quelles sont les options pour le web? Je sais qu’il existe Hibernate pour un ORM.

Java a-t-il MVC? Qu’en est-il de JSP ? MVC et JSP peuvent-ils être ensemble? NetBeans ?

Peut-être un livre qui couvre tout cela?

(Mis à jour en mars 2018)

Que dois-je apprendre exactement?

Je suppose que vous êtes déjà familier avec les technologies côté client telles que HTML , CSS et JS , donc je ne vais pas entrer dans les détails. Je suppose également que vous êtes déjà familiarisé avec les bases de Java. Suivez les didacticiels Java d’ Oracle et, si possible, obtenez également un livre ou un cours OCA .

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 de la partie II du didacticiel Java EE 5 d’ Oracle et sur Coreservlets.com ( débutant, intermédiaire et avancé, ainsi que JDBC ). Notez que depuis Java EE 6, JSP est supprimé du didacticiel Java EE en faveur de JSF et que JSP n’a fondamentalement pas changé depuis. C’est pourquoi vous pouvez utiliser en toute sécurité le très ancien tutoriel Java EE 5 pour cela. La chose la plus importante en ce qui concerne JSP est le fait que l’écriture de code Java simple dans les fichiers JSP à l’aide de <% scriptlets %> est officiellement déconseillée depuis 2003. Voir aussi Comment éviter le code Java dans les fichiers JSP? Ainsi, tous les tutoriels qui couvrent encore les scriptlets doivent être ignorés car ils vous emmèneront définitivement dans une spirale descendante d'apprentissage des mauvaises pratiques.

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


Tomcat semble être un bon serveur Web pour Java.

C'est. Il est cependant limité dans ses capacités. Il s'agit essentiellement d'un conteneur de servlets barebones, implémentant uniquement les parties JSP / Servlet de l'énorme API Java EE. Si vous voulez un jour utiliser EJB ou JPA, vous pouvez 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 servlets barebones sans modifier le moteur principal, mais dans le cas de Tomcat, vous réinventeriez TomEE. Voir aussi Qu'est-ce que Java EE?


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

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


Java a-t-il MVC? Qu'en est-il de 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, modification des auditeurs, etc.). Le framework MVC de Java EE s'appelle JSF . Avant Java EE 6, il fonctionnait sous JSP, une technologie de visualisation assez ancienne. JSP est remplacé par Facelets . Vous pouvez apprendre JSF dans le tutoriel Java EE, partie III, chapitres 7 à 17 . Vous pouvez d'ailleurs utiliser JSF sur Tomcat, il suffit de l'installer séparément. Les instructions d'installation sont disponibles sur la page d'accueil de Mojarra . WildFly, TomEE, Payara, Liberty, WebLogic, etc. étant une implémentation Java EE complète, fournissent déjà JSF (et CDI, BV, JSONP, JAX-RS, EJB, JPA, etc.), vous n'avez donc 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 y a plusieurs livres. Je recommanderais de commencer par un livre axé sur Java EE en général , un livre plus centré sur JSF et un livre plus axé sur JPA . Assurez-vous de choisir le livre le plus récent sur le sujet. Donc, pas un vieux livre pour Java EE 5 ou JSF 1.0 ou plus.

Enfin, ignorez les sites de grattage de fragments de code maintenus par des amateurs qui se concentrent sur les revenus publicitaires plutôt que sur l'enseignement, tels que roseindia, tutorialspad, javabeat, journaldev, javatpoint, codejava, etc. bannières et extraits de code JSP contenant des scriptlets .

Voir également:

  • Quelle est la différence entre JSF, Servlet et JSP?
  • Comment fonctionnent les servlets? Instanciation, sessions, variables partagées et multithreading
  • Quel est le besoin de JSF, quand l'interface utilisateur peut être réalisée à partir de CSS, HTML, JavaScript, jQuery?

Que dois-je apprendre exactement?

Au minimum,

  • Java la langue
  • Java l’API, y compris JDBC pour l’access à la firebase database
  • 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 dans les EJB, vous n’aurez probablement pas besoin d’apprendre autre chose. Glassfish 3 semble être plutôt cool ces derniers temps, mais je n’ai pas encore beaucoup joué. Notez que c’est “plus” qu’un serveur web. C’est un conteneur de servlet (ce qui signifie qu’il peut exécuter des applications en utilisant la technologie de servlet).

Quelles sont les options pour le web?

Environ un millier de frameworks différents. Vraiment, en choisir un est vraiment “difficile”. Il est très tentant de les essayer tous, mais finalement irréalisables.

Je sais qu’il y a un 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 utilisent MVC. Le spring MVC est sympa, mais je ne peux rien recommander d’autre (surtout pas Struts 1!). JSP est juste un moteur de template HTML (ou XML). JSP old-school, avec du code Java incorporé est incohérent; JSP moderne avec des fichiers de balises et des bibliothèques est très bon.

Je suppose que la plupart des frameworks vous permettront d’utiliser JSP pour rendre vos Vs; Le spring MVC et Struts font. Certains vous laisseront aussi utiliser autre chose (Velocity, Freemarker, etc.).

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

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 de servlet / JSP . Apache est le serveur Web pur.

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

Si vous faites 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 standards pour les objects Java.

Si vous le souhaitez, je recommanderais le framework Spring.

Java a-t-il MVC?

Java a différents frameworks comme Struts2 , Spring MVC

Qu’en est-il de JSP?

JSP est une bibliothèque de modèles. Il y a peu d’alternatives que vous pouvez essayer comme FreeMarker et Velocity . AFAIK Freemarker est une bibliothèque émergente de bon modèle. C’est léger que JSP . Vérifiez ce FreeMarker : une alternative ouverte à JSP – JavaWorld

MVC et JSP peuvent-ils être ensemble?

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

des haricots?

Je ne sais pas grand chose à ce sujet. Mais en utilisant des beans, nous pouvons directement associer des données de formulaire à 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

Ssortingng MVC – Jetez un coup d’œil à ces questions en recommandant des livres pour Spring et Spring MVC. Suggestion de livre pour Spring framework et Spring Books: Lequel choisir

Fremarker a une très bonne documentation – FreeMarker Manual

Pour vous lancer dans le développement web en Java

alt text http://soffr.miximages.com/jsp/5140T7T6WJL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA240_SH20_OU01_.jpg

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

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

  • Play est un framework MVC qui se concentre sur la légèreté, la simplicité et la rapidité du développement, tout en restant fidèle à Java, par opposition à un langage JVM plus dynamic. C’est assez nouveau mais déjà impressionnant, et une bonne communauté a rapidement fait son chemin.

  • 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 fondamentalement un sur-ensemble de Java, avec une meilleure syntaxe et quelques excellentes fonctionnalités telles que les fermetures, de sorte que l’apprentissage 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 flexible. Grande communauté aussi.

  • Google App Engine 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 celles que je peux imaginer.

Bonne chance et amusez-vous bien!

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

Si vous ne voulez pas travailler avec HTML, CSS, XML, JavaScript, etc.

Essayez le framework Vaadin , il est bien documenté, facile à apprendre et vous permet de créer une interface utilisateur simple et conviviale. (il suffit d’écrire du code Java, bien sûr, vous aurez besoin d’un serveur de servlet, Tomcat ou Jetty se passera bien)

Mieux vous apprenez java. Ensuite, vous apprenez les Servlets et JSP. Ensuite, optez pour MVC, vous allez dans Struts ou Spring ou tout autre framework compatible Java / java.

Puisque vous êtes nouveau sur Java, je vous recommande fortement d’apprendre d’abord la langue de base. Cela vous aidera, quelle que soit la technologie dans laquelle vous choisissez d’exécuter votre application Web.

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