Was müssen Sie lernen, um Java-Webanwendungen in Java EE 6 zu erstellen? [geschlossen]

103

Mein Ziel ist es, Webanwendungen zu erstellen!

Ich habe die Bücher "Headfirst - Java" und "Headfirst - Servlets and JSP" gelesen.

Da dieses Thema (Webanwendungen) so umfangreich und kompliziert ist, möchte ich fragen, was ich als nächstes lernen sollte. Ich fühle mich überfordert, wenn ich Schlagworte wie Java EE, EJB, JSF, JPA, Glassfish lese ... aber ich werde nicht aufgeben.

Kann mir bitte jemand sagen, wie ich mit dem Lernen fortfahren soll? Soll ich mir ein Buch wie dieses schnappen: Java EE 6-Plattform mit GlassFish 3 beginnen: Vom Anfänger zum Profi oder sollte ich nur ein paar Online-Tutorials erstellen?

Vielen Dank!

creativz
quelle
1
Ich habe die beiden Themen gelesen. Aber nochmal: In den Threads sagen sie nur "lerne Tomcat, JBoss, Hibernate, lerne dies oder das, etc ...". Wirf nur mit Worten. Aber ich möchte wissen, welches Buch oder Tutorial ich lernen soll. Vielleicht gibt es keinen solchen Weg und ich muss ihn "ineffizient" lernen, indem ich jedes einzelne Wort nachschlage. Ich hoffte nur, einen Rat zu bekommen, wie ich vorgehen sollte.
Creativz
1
Ich würde Ihnen empfehlen, mit Head First Servlets und JSP zu beginnen, vorausgesetzt, Sie verfügen über gute Kenntnisse in Java. Wenn Sie mit Java als Programmiersprache nicht vertraut sind, müssen Sie zunächst einige praktische Kenntnisse erwerben und dann mit der Entwicklung von Webanwendungen fortfahren.
Rachel
22
Nur dass all diese Fragen veraltet sind, da Java EE 6 nicht mehr
verfügbar
4
@Stephen Nun, ich denke tatsächlich, dass es eine große Lücke gibt, insbesondere im Webpart (mit Servlet 3.0 oder JSF 2.0 und CDI-verwalteten Beans).
Pascal Thivent
1
Komisch, wie viele hochstimmige allgemeine Fragen wie diese als "nicht konstruktiv" geschlossen werden. Ich würde sagen, sie sind sehr konstruktiv, aber nicht einfach konstruktiv zu beantworten. Sie helfen dabei, das Gesamtbild dessen zu sehen, was man tut oder tun sollte. Aber es ist schön, dass sie auf SO bleiben dürfen.
Jackthehipster

Antworten:

174

Selbst wenn ich weiß, dass dies umstritten sein wird, würde ich raten, nur mit Java EE 6 zu beginnen. Holen Sie sich also GlassFish v3 und holen Sie sich entweder das Buch Beginning Java EE 6 Platform mit GlassFish 3: Vom Anfänger zum Profi oder folgen Sie dem Java EE 6-Tutorial . Meiner Meinung nach bietet das Buch (das ich zu lesen begonnen habe, damit ich weiß, wovon ich spreche) weitere Anleitungen, die vorzuziehen sind, wenn "alles" für Sie neu ist (es behandelt sowohl die Java EE-Plattform als auch ihre APIs und die Umgebung zum Erstellen, Bereitstellen Ihrer Anwendungen).

Jetzt kann ich, wie gesagt, bereits Stimmen hören, die Dinge wie "Java EE ist schwer, verwenden Sie stattdessen Spring, lernen Sie Struts oder Wicket oder Stripes für die Präsentationsebene, lernen Sie Hibernate für Persistenz oder nicht, weil ich ORM nicht mag." Verwenden Sie stattdessen iBatis oder Straight JDBC (Sie werden sehen, es ist cool mit Spring, Spring ist so cool) und verwenden Sie Tomcat (und warum nicht Jetty) oder JBoss, oder vergessen Sie einfach alles und entscheiden Sie sich für Grails und bla bla bla ... " .

Aber ich denke nicht, dass dies Ihnen wirklich hilft, und ohne Mentoring oder Anleitung (und Sie werden keine nicht veraltete, einzigartige Ressource finden, die alle Kombinationen abdeckt), muss dies für einen Anfänger sehr verwirrend klingen.

Also, weil ich denke, dass Java EE 6 eine große Verbesserung gegenüber früheren Versionen von Java EE darstellt, weil es wirklich nette Standard-APIs für alle Ihre Anforderungen bietet (Servlet 3.0, JSF 2.0, JPA 2.0, EJB 3.1 Lite, Bean Validation 1.0, CDI) , etc), weil diese APIs alle mehr als anständig sind, weil es nichts wirklich Falsches ist, sie zu lernen, weil dies bereits eine große Aufgabe ist, weil man irgendwo anfangen muss , würde ich mich nur auf Java EE 6 konzentrieren und das vergessen andere Frameworks für jetzt. Genauer gesagt würde ich mit dem Java EE 6-Webprofil beginnen (und dann Dinge hinzufügen, wenn Sie weiter gehen möchten).

Auf diese Weise können Sie 1) loslegen und brandneue Dinge lernen und 2) allen anderen Frameworks und / oder Tools Zeit geben, sich anzupassen und zu beweisen, dass sie noch benötigt werden. Und wenn ja, wird es noch Zeit sein, die Überlebenden zu experimentieren, und Sie werden viel besser verstehen können, warum sie existieren.

Pascal Thivent
quelle
3
Vielen Dank. In Bezug auf das Buch habe ich es nicht vollständig gelesen, aber ich würde es definitiv sowohl Anfängern als auch experimentellen Entwicklern empfehlen, die einen guten Überblick über Java EE 6 erhalten möchten. Das Buch ist gut aufgebaut und deckt wirklich viele APIs ab (nicht viel fehlen), es gibt Codebeispiele, die alles zeigen, was präsentiert wird, sie sind wirklich didaktisch und erlauben es, so tief zu gehen, wie Sie wollen. Es könnte in Zukunft fokussiertere Bücher geben, aber dies ist eine gute.
Pascal Thivent
23
+1, aber der Frühling ist so cool :-)
ChssPly76
13
Verstehen Sie mich nicht falsch, Stripes, Spring, Hibernate, ... sind großartig. Aber zu viel Auswahl kann verwirrend sein, wenn Sie etwas Neues entdecken, und ich glaube, dass Sie mit Java EE 6 ohne sie beginnen können.
Pascal Thivent
9
Ich stimme Ihnen zu , es ist sehr wichtig , um die JEE - Stack selbst zu lernen , wenn man nichts davon, schließlich verwenden würde , dass Stack ist die Basis für alle die fabelhafte Frameworks , die Dinge wirklich groß zu machen, zum Beispiel Wicket oben aufgebaut ist aus das Konzept des Front Controllers, das in der Java-Welt Servlets und Filter bedeutet - wenn Sie nicht wissen, wie diese funktionieren, werden Sie auch nicht wirklich verstehen, was Wicket tut! Es sei denn, Sie akzeptieren "Magie!" als Antwort natürlich.
Esko
13
4 plus Jahre später ... würden Sie etwas an Ihrer Antwort ändern?
jlars62
28

Mein Rat 1 ist, keine Bücher mehr zu lesen und mit der Implementierung zu beginnen. Nach meiner Erfahrung ist das Lernen von Büchern ein schlechter Ersatz für das Wissen, das Sie erhalten, wenn Sie tatsächlich Dinge tun.


1 - Kontext: Dies ist ein Rat an jemanden, der gerade zwei Bücher zu diesem Thema gelesen hat und nach weiteren Büchern zum Lesen sucht. In der Praxis müssen Sie Lesen und Handeln in Einklang bringen. Besonders wenn Sie ein bestimmtes Problem haben, das Sie lösen möchten.

Stephen C.
quelle
29
Aber es könnte Ihnen Tage der Suche ersparen. Könnten Sie auch genug Wissen geben, um Fragen zu beantworten, anstatt sie zu stellen und schließlich hier ein hohes Ansehen zu haben? Stimmen Sie nicht zu?
Muhammad Gelbana
6
Nein, ich stimme nicht zu. Das OP hat bereits zwei Java / Java EE-Bücher gelesen. Es ist Zeit für ihn, etwas zu programmieren. FWIW, ich habe den größten Teil meines Wissens nicht durch das Lesen von Büchern erhalten. Eher habe ich es PRIMARILY bekommen, indem ich Dinge implementiert und auf die Dokumentation verwiesen habe, wenn ich musste. Sie lernen nicht, Fahrrad zu fahren, indem Sie Bücher lesen ... und Sie lernen auch nicht so Programmierkenntnisse.
Stephen C
3
Es ist wichtig zu balancieren readingund practice.
smwikipedia
9

Java EE 6 ist wirklich erstaunlich. Das einzige Problem ist, dass es ungefähr 2 Wochen alt ist und es derzeit nur 1 Container gibt, der seine Funktionen bietet - Glassfish.

Ich habe nichts gegen Glassfish, ich benutze es überall, mehrere Produktionsinstanzen, ich liebe das Produkt und das Projekt.

Die Details von Java EE 6 lassen sich jedoch nicht auf Java EE 5 zurücksetzen. Einige tun dies, viele tun dies, aber das Webprofil, Servlet 3.0, die neuen Bean-Typen, JPA 2 usw. Diese sind nicht vorhanden.

Wenn Sie also zuerst Java EE 6 lernen, beschränken Sie sich einfach auf einen einzelnen Container. Weitere kommen, aber sie sind noch nicht hier.

Tomcat, JBoss, OpenEJB, Glassfish, Jetty, Resin, Geronimo usw. funktionieren alle gut mit der Java EE 5-Spezifikation (zumindest die Teile der Spezifikation, die sie unterstützen, Tomcat hat beispielsweise kein EJB).

Ich kann mir in Java EE 5 nichts vorstellen, was nicht auf Java EE 6 übertragen wurde. Java EE 6 hat einige sehr alte Aspekte optional gemacht, und diejenigen, die Sie heute einfach nicht lernen würden. Java EE 6 hat einige Java EE 5-Inhalte noch einfacher gemacht (insbesondere das Verpacken von EJB Lite).

Lernen Sie jetzt Java EE 5, damit Sie das Gelernte in einer Vielzahl von Umgebungen anwenden können, anstatt Java EE 6 jetzt zu lernen und zu entdecken, dass Sie möglicherweise nicht viel von dem verwenden können, was Sie lernen.

Kein einziges Buch bringt Ihnen bei, was Sie wissen müssen. Servlets sind zum Beispiel eine gute Grundlage, aber für alles, was größer als ein paar Seiten oder ein Endpunkt ist, sollten Sie eines der vielen Frameworks von Drittanbietern oder JSF verwenden, und kein Buch behandelt den Kern und dann ein Framework darüber davon.

Das Java EE 5-Tutorial ist gut darin, die Grundlagen zu verbessern. Meine Hauptbeschwerde ist, dass sie Ihnen den Quellcode nicht zeigen. Vielmehr erwarten sie, dass Sie es einfach herunterladen und ausführen. Es wird im Tutorial nicht besprochen. Ich habe festgestellt, dass die Head First-Bücher ziemlich gut sind.

Für die Webprogrammierung sind Raw-Servlets wichtig genug, um den Anforderungs- / Antwortzyklus zu verstehen, aber Sie benötigen kein tiefes Verständnis, um zu einem Framework eines Drittanbieters zu gelangen.

Ich bin ein großer Fan von Stripes für ein Action-Framework (im Vergleich zu einem Komponenten-Framework), und das einzelne verfügbare Stripes-Buch ist ausgezeichnet (was die Auswahl einfach macht).

Ich kann kein Komponenten-Framework-Buch vorschlagen, und ich würde eines nicht sofort empfehlen. Die Komponenten-Frameworks begraben die HTTP-Kernanforderungs- / Antwortstrukturen wirklich. Sie begraben sie aus einem bestimmten Grund und gewinnen an Wert, indem sie sie begraben, aber ich glaube, um effektiv zu sein, muss man diese Konzepte frühzeitig gut verstehen. Aus diesem Grund empfehle ich nicht, zuerst ein Komponenten-Framework zu lernen.

Das in Java EE 6 enthaltene JAX-RS REST-Framework, das jedoch problemlos in Java EE 5 oder einem beliebigen Servlet-Container installiert werden kann, ist hervorragend. Es ist wohl das, was Servlet 3.0 hätte sein sollen. Aber dafür kenne ich keine Bücher.

Will Hartung
quelle
2
Die Frage ist, wie der Status von Anwendungsservern ist, wenn Sie für die Produktion bereit sind. Wenn ein bestimmtes Projekt in 6 Monaten dauert, haben Oracle und JBoss höchstwahrscheinlich JEE6-kompatible Server und Resin höchstwahrscheinlich einen JEE6-Webprofilserver.
Thorbjørn Ravn Andersen
Nun, JBoss ist im Dezember fällig. Oracle liegt niedrig. Resin ist in Bezug auf die Implementierung des Webprofils ruhig geworden. Geronimo setzt auf Web Profile mit 3.0 (Beta). Glassfish ist in 3.0.1 raus, was wirklich nett ist.
Thorbjørn Ravn Andersen
5

Lesen Sie für Tomcat das Handbuch auf der Website. Es ist sehr gut. Insbesondere die ersten Kapitel zur Organisation und Bereitstellung von Web-Apps sowie die Kapitel zur Servlets-API und zu JSPs.

Für den Frühling ist das Manning-Buch Spring in Action sehr gut. Ähnliches gilt für Hibernate (das Manning-Buch), aber ich denke, Hibernate liegt größtenteils außerhalb des Bereichs von Webapps. Ihr Anruf jedoch.

Wicket - Manning Buch auch. Aber wirklich, schreiben Sie einfach Ihren Front-End-Code in Javascript. Es wird weniger schmerzhaft sein, IMO.

danben
quelle
3

Ich werde keine Kommentare zu anderen Technologien abgeben, aber wenn Sie Hibernate lernen möchten, erhalten Sie "Hibernate Made Easy" von Cameron McKenzie (www.hiberbook.com). Es ist jeden Cent wert. Sie können das Buch in 2 Tagen (im wahrsten Sinne des Wortes) zu Ende lesen. Es ist wie ein Roman und am Ende haben Sie es mit Hibernate zu tun wie mit einem Semi-Pro.

Motiv
quelle
3

Jpassion bietet gute Videos und Materialien zum Erlernen von Java EE 6 und anderen Dingen.

Sie sollten auch Anwendungsbeispiele sehen:

  1. Petstore . Benötigt Maven, Glassfish empfohlen. Geschrieben von Antonio Goncalves, der das erwähnte Buch geschrieben hat .
  2. JBoss Ticketmonster . Benötigt Maven & Jboss Forge . In Jboss bereitstellen.
Jacktrades
quelle
2

Wenn Sie nur Webanwendungen in Java erstellen möchten, lesen Sie das Play Framework . Es ist ähnlich wie "Ruby on Rails"

Apeirogon Prime
quelle