Quel est le meilleur chemin ou flux pour apprendre java du point de vue du site Web


Je viens de commencer à apprendre java et j'ai environ 8 mois. Mon objectif principal est de construire une application Web en utilisant java. Mais comme il existe de nombreuses technologies/frameworks java disponibles, je suis conufused comment dois-je aller ID que j'utilise est eclipse

Le chemin que je pense est ci-dessous

1)Learn Core Java
2)Project: Build Java Invoicing System with JDBC or mysql to test java knowledge

3)Learn Servlets / JSP to 
4)Build small site like simple logon/memberarea/catalogue using servlets/jsp

Maintenant, les gars, je ne sais vraiment pas où se trouvent les choses suivantes sur mon chemin et quelles choses elles vont aider

1)Java EE
2)Spring or spring MVC, what's the difference?
3)Hibernate
4)Wicket
5)Struts

Je ne sais vraiment pas comment dois-je apprendre ces choses et quelles choses pour choisir de.

Quel devrait être mon projet final qui peut être construit en utilisant ceux-ci parce que si je vois de mon stade actuel, même le site Web peut être construit en utilisant des servlets/jsp. alors pourquoi ai - je besoin de ces autres technologies

Quelqu'un peut-il donner un exemple de projet qui peut être construit en utilisant de nouvelles technologies et non en utilisant jsp/servlet, afin que je puisse avoir une idée pourquoi nous en avons besoin?

Author: Arjan Tijms, 2011-01-08

4 answers

Beaucoup de choses à apprendre ici donc je le prendrais un peu de temps. Je vais supposer que vous êtes relativement à l'aise avec le langage Java et les API de base.

Découvrez d'abord JDBC et les bases de données. Obtenez un exemple d'application JDBC fonctionnel de base (pas visuel seulement une application Java vanille) qui lit/insère/met à jour/supprime certains enregistrements dans une table. Cela vous donnera la base pour construire n'importe quelle application que vous choisissez. Presque toutes les applications intéressantes impliquent une sorte de persistance/base de données.

Apprenez les principales API JDBC (Connection, PreparedStatement, ResultSet) et écrivez du code qui les utilise pour être à l'aise.

Découvrez comment les transactions fonctionnent dans les bases de données si vous n'êtes pas déjà familier et comment JDBC les utilise (Connexion.commit et rollback)

Ensuite, vous pouvez regarder dans le cadre spring. Cela a plusieurs fonctionnalités utiles qui sont utiles lors de la construction de ces applications. Les principaux pour connaître la dépendance la fonctionnalité d'injection et les bibliothèques JDBC dont elle dispose. Le truc DI est un peu un "duh"? si vous ne l'avez pas utilisé auparavant mais qu'il est très utile/puissant, en particulier pour les applications de taille moyenne+. Les bibliothèques JDBC aident à gérer les API JDBC brutes et rendent votre code moins sujet aux erreurs.

Une fois que vous avez quelques trucs de base JDBC et Spring élaborés, vous pouvez alors commencer à apporter un framework Web.

C'est plus difficile parce qu'il y en a tellement. Dans l'intérêt de obtenir quelque chose en place et en cours d'exécution rapidement, j'irais probablement avec Wicket. Il fonctionne à l'intérieur d'un conteneur de servlet comme Jetty, facile à mettre en place avec une page Web de base ou deux et relativement facile à faire évoluer le projet au fil du temps sans descendre trop de ruelles aveugles. J'ai trouvé que des frameworks comme JSF (le framework Web/view par défaut de Java EE) prennent beaucoup de temps à l'avance pour continuer. La plupart de ces cadres, y compris Wicket, peuvent tirer parti des éléments de printemps que vous avez surtout.

Évitez JSP, c'est une technologie désagréable et obsolète par pratiquement tout le reste.

Pour répondre à certains de vos autres points.

Hibernate est un outil pour mapper un modèle objet à un modèle relationnel. Dans sa forme la plus basique, vous définissez une classe Java pour chaque table de base de données avec la classe ayant une propriété Java (variable+getter+setter) pour chaque colonne de base de données. Vous pouvez également ajouter des références d'une classe à une autre pour modéliser les relations de base de données. Il est bon, mais il faut un peu de pour s'y habituer.

Printemps j'ai expliqué en partie ci-dessus. Spring est beaucoup plus grand que DI et certaines bibliothèques JDBC. Il a également des bibliothèques de gestion des transactions et un tas d'autres choses. Spring MVC est un framework Web qui vit sous le parapluie spring et utilise de nombreuses bibliothèques spring en interne. Je ne l'ai jamais utilisé, donc je ne peux pas donner un avis à ce sujet.

Java EE est un terme générique pour un grand ensemble de spécifications/bibliothèques "d'entreprise". JSF est un framework de vue web cela fait partie de Java EE.

C'est mon conseil de très haut niveau. Pour résumer, j'apprendrais DB/JDBC de base, puis quelques trucs de printemps, puis je commencerais à créer une application Web de base en utilisant ce que vous avez déjà appris.

J'espère que cela aide. Il y a beaucoup d'informations sur le Web sur tous ces sujets et vous pouvez toujours poser des questions ici sur des parties plus spécifiques si vous avez besoin d'aide. Bonne chance et amusez-vous!

MODIFIER (pour adresser le commentaire):

Tout ce qui précède est mon recommandation / avis sur la façon d'aborder l'apprentissage du développement Web Java.

En résumé

  • Apprendre JDBC / transactions / bases de données est un must
  • Le printemps est facultatif mais je le recommande fortement. Le printemps est une grande bibliothèque, mais vous pouvez choisir les morceaux que vous aimez/besoin.
  • Cadres Web le choix est vraiment le vôtre. D'après ce que j'ai essayé (JSF/JSP/Wicket) Wicket est le plus facile à utiliser afin que vous ne passiez pas trop de temps frustré d'obtenir le la configuration initiale. JSP est horrible, il est très facile de faire un gâchis avec elle. JSF est puissant mais lourd et probablement plus adapté aux projets très entreprenants qu'une première application web.
  • Hibernate est facultatif mais peut vous faciliter la vie simplement parce que vous pouvez travailler avec des objets Java lorsque vous effectuez des requêtes/mises à jour de base de données plutôt que d'écrire des instructions d'insertion/mise à jour fastidieuses. Hibernate n'est pas le seul outil comme celui-ci, mais c'est celui que j'ai le plus utilisé et qui fait bien le travail. Juste ne va pas trop à la mer avec le "intelligent" hibernate caractéristiques initialement.

Vous pouvez facilement utiliser Spring MVC au lieu de Wicket. Cela peut être un très bon choix, je n'ai pas utilisé Spring MVC moi-même, donc je ne peux pas commenter. Je suis sûr qu'il s'intégrera bien avec les trucs de printemps, ce qui serait certainement un facteur positif.

Faites plus de recherches si vous n'êtes pas sûr, il n'y a pas de fin de gens heureux de donner leur avis! Mais vraiment, vous avez juste à plonger et essayer quelque chose.

 8
Author: Mike Q, 2013-06-15 12:55:28

Vous avez raison. Si toutes vos applications sont servies par des servlets, des JSP et des JDBC, vous n'avez peut-être pas besoin d'apprendre autre chose.

Je vous félicite d'avoir d'abord appris les fondamentaux avant de plonger dans un fourré de cadres que vous ne comprenez pas. C'est une bonne chose.

Mais si vous atteignez le point où vous avez froid, peut-être que regarder ces autres technologies peut vous aider à améliorer votre jeu.

1)Java EE

Vous êtes apprentissage (partie) de Java EE lorsque vous utilisez des servlets, des JSP et des JDBC. Ils sont un sous-ensemble des machines Java EE complètes - EJBs, JMS, JNDI, etc.

2)Ressort ou ressort MVC ce qui est différence

Spring est un framework alternatif développé par Rod Johnson et Springsource, qui fait maintenant partie de VMware, basé sur l'injection de dépendances, la programmation orientée aspect et les modules framework. Spring web MVC est un module du framework Spring, basé sur des servlets, qui agit comme le frontal pour les applications web.

3) Mise en veille prolongée

Une technologie de mappage objet-relationnel (ORM), construite sur SQL et JDBC, qui vous permet de mapper des objets sur des tables. Il a son propre langage de requête basé sur des objets.

4) Guichet

Une autre alternative web MVC à Spring MVC, Struts, JSF, etc.

5) Entretoises

Le premier framework web MVC. Il est passé par les versions 1.0 et 2.0, et a maintenant été supporté par Java Server Faces. Il est encore utilisé, cependant. Comme tous les autres frameworks web MVC en Java, il est basé sur des servlets et des JSP.

 6
Author: duffymo, 2013-06-15 12:55:41

D'un point de vue Java, il pourrait être préférable de commencer à regarder Java EE. Tous les autres que vous avez mentionnés sont des technologies alternatives, qui pourraient vous être utiles si vous décidez que ce que le cadre standard offre n'est pas votre tasse de thé. Mais pour que cela se décide, ce n'est jamais une mauvaise idée de savoir au moins de quoi parle le cadre standard.

À vrai dire, avant 2006, le cadre standard avait une mauvaise réputation et certains des sentiments qui forment la base de la recommandation les technologies alternatives sont toujours basées sur cela. À partir de la version 5, Java EE s'est considérablement amélioré. La dernière version, Java EE 6 est sans doute l'un des meilleurs frameworks Java qui existe. Bien sûr, le meilleur est un terme hautement subjectif et naturellement ce ne sera pas le meilleur pour chaque personne.

À toute longueur, Java EE 6 est un framework très complet qui permet d'écrire un large éventail d'applications sans dépendre d'une bibliothèque supplémentaire. Étant le cadre standard, la plupart des autres cadres dépendent au moins de certaines parties de celui-ci.

Le plus souvent, EJB, CDI et JSF sont remplacés par des technologies alternatives. Par exemple, le conteneur Core Spring remplace EJB et CDI et Spring MVC remplace JSF. Une pile Spring complète utilise généralement toujours JPA, JTA, JMS et Servlet de Java EE. Wicket à son tour ne remplace que JSF, ou lorsqu'il est utilisé avec une pile Spring remplace Spring MVC.

Hibernate est un cas particulier. Cela ne remplace rien de Java EE, mais est plutôt souvent utilisé comme une implémentation pour l'une des API clés de Java EE: JPA. Le créateur original de Hibernate, Gavin King, est l'un des principaux partisans du framework Java EE et est en fait le responsable des spécifications de l'une des parties les plus importantes de Java EE moderne: CDI.

Wicket en soi est un très bon framework Web, mais en pratique, il n'est pas utilisé aussi souvent que JSF. Je n'entrerai pas dans la discussion pour savoir si Wicket ou JSF est "meilleur" (c'est surtout une bataille religieuse quoi qu'il en soit), mais en raison de la popularité de JSF, il y a tout simplement plus de gens expérimentés avec elle et il y a une grande communauté offrant beaucoup de choses pour JSF comme les bibliothèques de composants et les extensions.

Struts a toujours été complètement remplacé par JSF. Le créateur original ou Struts, Craig Mcclanahan, était celui qui a commencé JSF comme le successeur de Struts. Néanmoins, Struts était autrefois la norme absolue de facto pour les frameworks Web en Java. Il n'est pas souvent conseillé d'être utilisé pour de nouveaux les projets, mais jusqu'à ce jour il est encore utilisé dans un grand nombre d'applications existantes. Donc, même si ce n'est pas vraiment "chaud" d'apprendre Struts anno 2011 la connaissance de celui-ci peut encore être très pratique lorsque vous devez maintenir des applications existantes.

Ps

Voir cette réponse pour une description générale de Java EE: Frameworks pour la superposition d'architectures réutilisables

 4
Author: Arjan Tijms, 2017-05-23 12:34:19

Je suis sûr que personne ne peut sérieusement vous dire la meilleure façon, car cela signifierait qu'il aurait tout essayé. Pourquoi voulez-vous apprendre un framework d'application Web Java? Juste pour l'apprendre pour être préparé pour le (prochain) travail? Dans ce cas, il est probable que vous avez appris le mauvais.

La question suivante serait ce que vous voulez faire avec le framework d'application Web. Voulez-vous rendre un site Web un peu actif, par exemple faire regarder chaque page similaire (corporate design), générer automatiquement des menus à partir d'une structure interne, ou voulez-vous écrire une vraie application Web , par exemple avec accès à la base de données.

Je définirais d'abord l'objectif que vous voulez atteindre. À mon humble avis un bon moyen de vous motiver à faire est de prendre un petit projet qui vous aide à résoudre un petit problème.

Ensuite, je commencerais par des pages de serveur Java (JSP) et des servlets pour comprendre les concepts de base. Ensuite, vous pouvez essayer de faire la même chose avec quelques frameworks d'applications Web bien connus, par exemple Wicket.

 1
Author: Mot, 2011-01-08 16:22:22