Java EE-Webentwicklung, wo fange ich an und welche Fähigkeiten benötige ich? [geschlossen]

215

Ich möchte zumindest auf einer grundlegenden Ebene lernen, wie Java-Webanwendungen (mit einem .NET-Hintergrund) erstellt werden. Ich möchte in der Lage sein, eine einfache Anwendung vom Typ CMS von Grund auf zu erstellen und bereitzustellen.

Was genau muss ich lernen?

Tomcat scheint ein guter Webserver für Java zu sein.

Welche Möglichkeiten gibt es für das Web? Ich weiß , es ist Hibernate für ORM.

Hat Java MVC? Was ist mit JSP ? Können MVC und JSP zusammen sein? NetBeans ?

Vielleicht ein Buch, das all dies behandelt?

mrblah
quelle

Antworten:

260

(Aktualisiert März 2020)

Zunächst wurde "Java EE" seit September 2019 ab Version 8 in " Jakarta EE " umbenannt . Historisch gesehen gab es auch den Begriff "J2EE", der die Versionen 1.2 bis 1.4 abdeckte. Das "Java EE" deckte die Versionen 5 bis 8 ab. Siehe auch Java Platform, Enterprise Edition, Verlauf auf Wikipedia .

Was genau muss ich lernen?

Ich gehe davon aus, dass Sie bereits mit clientseitigen Technologien wie HTML , CSS und JS vertraut sind , daher werde ich darauf nicht näher eingehen. Ich gehe auch davon aus, dass Sie bereits mit grundlegendem Java vertraut sind. Befolgen Sie die Java-Tutorials von Oracle und holen Sie sich nach Möglichkeit auch ein OCP-Buch oder einen OCP- Kurs.

Anschließend können Sie mit JSP / Servlet beginnen, um die grundlegenden Konzepte der Java-Webentwicklung zu erlernen. Gute Tutorials finden Sie in den Java EE 5-Tutorials von Oracle, Teil II, Kapitel 3 - 8 und auf Coreservlets.com ( Anfänger-Fortgeschrittene und Fortgeschrittene, auch JDBC ). Beachten Sie, dass JSP seit Java EE 6 zugunsten von JSF aus dem Java EE-Lernprogramm entfernt wurde und dass sich JSP seitdem grundsätzlich nicht geändert hat. Aus diesem Grund können Sie das ziemlich alte Java EE 5-Tutorial sicher verwenden. Das Wichtigste in Bezug auf JSP ist die Tatsache, dass das Schreiben von einfachem Java-Code in JSP-Dateien mithilfe von <%Scriptlets %>seit 2003 offiziell nicht empfohlen wird. Siehe auch Wie vermeide ich Java-Code in JSP-Dateien? Daher sollten alle Tutorials, die sich noch mit Scriptlets befassen, übersprungen werden, da sie Sie definitiv in eine Abwärtsspirale des Lernens schlechter Praktiken führen.

Hier auf Stack Overflow finden Sie auch schöne Wiki-Seiten zu JSP , Servlets , JSTL und EL, auf denen Sie das Wesentliche lernen und weitere nützliche Links finden können.


Tomcat scheint ein guter Webserver für Java zu sein.

Es ist. Es ist jedoch in den Fähigkeiten begrenzt. Es handelt sich im Grunde genommen um einen Barebone-Servlet-Container, der nur die JSP / Servlet-Teile der riesigen Java EE-API implementiert. Wenn Sie jemals EJB oder JPA wählen möchten, möchten Sie eine andere auswählen, z. B. WildFly , TomEE , Payara , Liberty , WebLogic usw. Andernfalls müssen Sie Spring anstelle von Java EE verwenden. Es ist nämlich nicht möglich, EJB in einem Barebone-Servlet-Container zu installieren, ohne die Core-Engine zu ändern. Im Falle von Tomcat würden Sie TomEE grundsätzlich neu erfinden. Siehe auch Was genau ist Java EE? , Wie installiere und konfiguriere ich JSF-Bibliotheken ordnungsgemäß über Maven? und Wie installiere und verwende ich CDI auf Tomcat?


Ich weiß, dass es für einen ORM einen Ruhezustand gibt.

Zuvor, während der J2EE-Ära, als JPA nicht existierte und EJB2 schrecklich war, war Hibernate ein eigenständiges Framework und wurde häufig in Kombination mit Spring verwendet, um EJB zu ersetzen. Seit der Einführung von JPA in Java EE 5 (2006) ist Hibernate zu einer JPA-Implementierung geworden. Sie können JPA im Jakarta EE Tutorial Teil VIII lernen . Außerdem wurde EJB3 aufgrund der Lehren aus dem Frühjahr erheblich verbessert. Siehe auch Wann ist es notwendig oder bequem, Spring oder EJB3 oder alle zusammen zu verwenden?


Hat Java MVC? Was ist mit JSP? Können MVC und JSP zusammen sein? JavaBeans?

Sie können , aber das ist eine Menge Neuerfindung des Rades, wenn es darum geht, das Modell mit der Ansicht zu verknüpfen (Konvertierung, Validierung, Ändern von Listenern usw.). Das MVC-Framework von Java EE heißt JSF . Vor Java EE 6 wurde es unter JSP ausgeführt, einer ziemlich älteren Ansichtstechnologie. JSP wurde durch Facelets ersetzt . Sie können JSF im Jakarta EE Tutorial Teil III Kapitel 7 - 17 lernen . Sie können JSF übrigens auch unter Tomcat verwenden, Sie müssen es nur separat installieren. Installationsanweisungen finden Sie auf der Mojarra-Homepage. WildFly, TomEE, Payara, Liberty, WebLogic usw. bieten als vollständige Java EE-Implementierung bereits JSF (und CDI, BV, JSONP, JAX-RS, EJB, JPA usw.), sodass Sie dies nicht benötigen Installieren Sie es separat. Siehe auch So installieren und konfigurieren Sie JSF-Bibliotheken ordnungsgemäß über Maven.


Vielleicht ein Buch, das all dies behandelt?

Es gibt mehrere Bücher. Ich würde empfehlen, mit einem Buch zu beginnen, das sich allgemein auf Jakarta EE konzentriert , einem Buch, das sich mehr auf JSF konzentriert , und einem Buch, das sich mehr auf JPA konzentriert . Stellen Sie sicher, dass Sie das aktuellste Buch zum Thema auswählen. Untersuchen Sie zuerst die aktuellste verfügbare Version und stellen Sie dann sicher, dass das ausgewählte Buch dies abdeckt. Wählen Sie daher definitiv kein altes Buch für Java EE 5 oder JSF 1.0 oder so aus, solange derzeit bereits Jakarta EE 8 und JSF 2.3 verfügbar sind.

Zu guter Letzt ignorieren Sie bitte Code-Snippet-Scraping-Sites, die von Amateuren gepflegt werden und deren Hauptaugenmerk auf Werbeeinnahmen statt auf Unterricht liegt, wie Roseindia, Tutorialspoint, Javabeat, Journaldev, Javatpoint, Codejava usw. Sie sind leicht durch störende Werbelinks / zu erkennen Banner und JSP-Codefragmente mit Scriptlets .

Siehe auch:

BalusC
quelle
Großartig! nützlich, danke. In .Net kann das Buch von Wrox Press normalerweise alle Kenntnisse in .net abdecken. Ein sehr dickes Buch.
Gfan
5
Hat StackOverflow keine Pin-Post-Funktion? Ich wünschte, es wäre so, damit ich diese Antwort pinnen könnte. Vielen Dank!
Dww
Es muss eine Alternative zum JavaEE 5-Tutorial geben. Ich weiß, dass ich ein Noob bin, und ihr seid sehr gut darin. Aber ... Ich versuche aus diesem Tutorial zu lernen. Es ist sehr gesperrt und von bestimmten Einstellungen abhängig. Also muss ich NetBeans lernen. Dann muss ich meinen Server aufgeben und mich intensiv mit Glassfish beschäftigen. Der Versuch, den Beispielcode zu finden, von dem ich ausführen und lernen kann, war nicht der einfachste. Ich konnte nicht auf dem Server laufen. Stattdessen traf ich auf etwas, das man Maven Build nennt. Ich dachte, ich hätte es versucht, was dazu führte, dass die Sonnenfinsternis nutzlos wurde! aparently muss ich auch maven lernen, und das, dass der andere und die teufel großmama ...
brat
@brat: Die Antwort enthält Links zu Alternativen und Büchern.
BalusC
Gut. Nur eine, die viel abdeckt. Coreserv ... musste hier und da Schnipsel aufheben. Ich habe mich jetzt voll mit dem offiziellen JavaEE-Tut beschäftigt :) Nur um herauszufinden, welches SDK heruntergeladen werden muss, um Beispielcode auszuführen, hat GlassPish einen Server, der beim Start nicht mit JDK 10 funktioniert :(, NullPointerException. Habe einen Hack stackoverflow.com gefunden / Fragen / 47458119 /… und so muss ich herunterladen ... und so weiter und so fort. Ich denke, ich bin nur ein bisschen niedergeschlagen und zickig, weil ich durch die Reifen springen muss, um zu lernen. :(. Sie machen es nicht einfach noobs x). Prost :)
Göre
28

Was genau muss ich lernen?

Minimal,

  • Java die Sprache
  • Java die API, einschließlich JDBC für den Datenbankzugriff
  • Eine IDE oder ein Texteditor + Ant
  • Java EE, im Grunde Servlets und JSP
  • Ein Servlet-Container (z. B. Tomcat)

Tomcat scheint ein guter Webserver für Java zu sein.

Es ist "anständig". Wenn Sie sich nicht für EJBs interessieren, müssen Sie wahrscheinlich nichts anderes lernen. Glassfish 3 scheint in letzter Zeit ziemlich cool zu sein, aber ich habe noch nicht viel damit gespielt. Beachten Sie, es ist "mehr" als ein Webserver. Es ist ein Servlet-Container (dh er kann Apps mithilfe der Servlet-Technologie ausführen).

Welche Möglichkeiten gibt es für das Web?

Über zig verschiedene Frameworks. Wirklich, eine zu wählen ist wirklich "schwierig". Es ist sehr verlockend, sie alle auszuprobieren, aber letztendlich nicht durchführbar.

Ich weiß, dass es für einen ORM einen Winterschlaf gibt.

Ich bin etwas gegen ORM, aber Ruhezustand ist das, was Sie brauchen, wenn Sie ein "volles" ORM benötigen. Sie können auch "teilweise" ORMs ausprobieren, z. B. die JDBC-Unterstützung von Spring oder iBatis.

Hat Java MVC? Was ist mit JSP? können MVC und JSP zusammen sein? Bohnen?

Ja, die meisten Java-Webframeworks verwenden MVC. Spring's MVC ist nett, aber ich kann nichts anderes empfehlen (besonders nicht Struts 1!). JSP ist nur eine HTML- (oder XML-) Vorlagen-Engine. Old-School-JSP mit eingebettetem Java-Code ist uncool. moderne JSP mit Tag-Dateien und Bibliotheken ist ziemlich gut.

Ich nehme an, in den meisten Frameworks können Sie JSP verwenden, um Ihre Vs zu rendern. Spring's MVC und Struts tun es. Bei einigen können Sie auch etwas anderes verwenden (Velocity, Freemarker usw.).

Bohnen sind nur eine Konvention für Objekte. Grundsätzlich bedeutet dies, dass Sie Getter und Setter (oder einige Alternativen) verwenden und einige Regeln befolgen. Mit diesen sollte Ihr Objekt von bestimmten Werkzeugen manipuliert werden können. Das typische Beispiel ist eine GUI. Mit einigen Tools können Sie GUI-Komponenten zum Bearbeiten beliebiger Beans erstellen (dh sie rendern ein Formular zum Bearbeiten der Felder).

Alex
quelle
16

Sie benötigen HTML, CSS und JavaScript - alle üblichen Verdächtigen für die Webentwicklung.

In Tomcat ist zwar ein Webserver integriert, es handelt sich jedoch um eine Servlet- / JSP-Engine . Apache ist der reine Webserver.

Sie müssen JSP lernen, eine Vorlagensprache zum Generieren von Servlets, die HTML-Ausgaben generieren. Sie sollten sie mit JSTL schreiben, nicht mit Scriptlets.

Wenn Sie CRUD-Anwendungen ausführen, müssen Sie JDBC und relationale Datenbanken kennenlernen. Sie sollten dies tun, bevor Sie Hibernate oder ein anderes ORM ausprobieren, da dies die Grundlage ist, auf der sie basieren.

JavaBeans sind nur Standards für Java-Objekte.

Wenn Sie dazu bereit sind, würde ich das Spring-Framework empfehlen.

Duffymo
quelle
Sie sagen, Tomcat hat einen eingebauten Webserver. Was ist es dann noch? Ich dachte, alles was es war, ist ein Webserver?
Mrblah
6
@mrblah - Tomcat ist eine Servlet-Engine. Es wurde entwickelt, um Servlet-Klassen (in die JSPs umgewandelt werden) zu verarbeiten und die Ausgabe an einen Browser zu senden. Darüber hinaus werden alle regulären Dateien (Bilder, HTML, CSS usw.) wie bei einem Webserver bereitgestellt. Es ist vergleichbar mit Apache mit einem PHP-Modul.
Nemi
13

Hat Java MVC?

Java hat verschiedene Frameworks wie Struts2 , Spring MVC

Was ist mit JSP?

JSP ist eine Vorlagenbibliothek. Es gibt nur wenige Alternativen, die Sie ausprobieren können, wie FreeMarker und Velocity . AFAIK Freemarker ist eine aufstrebende, gute Vorlagenbibliothek. Es ist leichter als JSP . Überprüfen Sie diesen FreeMarker : Eine offene Alternative zu JSP - JavaWorld

können MVC und JSP zusammen sein?

Ich nehme MVC als zuvor erwähntes Framework. Alle Frameworks unterstützen JSP, Sie müssen jedoch die Unterstützung für andere Vorlagenbibliotheken in der jeweiligen Framework-Dokumentation überprüfen. AFAIK Struts2 to hat eine sehr gute Unterstützung für Freemarker.

Bohnen?

Ich weiß nicht viel darüber. Mit Beans können wir Formulardaten jedoch direkt Datenbanken zuordnen.

Vielleicht ein Buch, das all dies behandelt?

Jedes Framework hat ein eigenes Buch. Für Struts2 - Struts 2 in Aktion

String MVC - Sehen Sie sich diese Fragen an und empfehlen Sie Bücher für Spring und Spring MVC. Buchvorschlag für Spring Framework und Spring Books: Welches zur Auswahl

Fremarker hat eine sehr gute Dokumentation - FreeMarker Manual

Für den Einstieg in die Webentwicklung in Java -

Alt-Text

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

Xinus
quelle
5

Ich halte die meisten traditionellen Java-Webentwicklungsoptionen für ziemlich schwer, und es gibt einige gute Alternativen:

  • Play ist ein MVC-Framework, das darauf ausgerichtet ist, leichtgewichtig, unkompliziert und schnell zu entwickeln - und dabei auf reinem Java zu bleiben, im Gegensatz zu einer dynamischeren JVM-basierten Sprache. Es ist ziemlich neu, aber bereits beeindruckend, und es hat sich schnell eine gute Community aufgebaut.

  • Grails ist ein MVC-Framework, das von Ruby on Rails inspiriert wurde und in Groovy , einer Java-basierten Skriptsprache , geschrieben ist und diese verwendet . Grails ist ausgereift, robust und weithin anerkannt, mit einer starken Gemeinschaft. Groovy ist im Grunde eine Obermenge von Java mit einer besseren Syntax und einigen großartigen Funktionen wie Schließungen. Das Erlernen ist also eine großartige Möglichkeit, Java zu lernen.

  • Wenn Sie RESTful-Websites / -Dienste / -Anwendungen erstellen möchten / möchten, ist Restlet ein fantastisches Framework - ich bin ein großer Fan. Es ist einfach, unkompliziert und dennoch flexibel. Tolle Community auch.

  • Die App Engine von Google ist ebenfalls eine interessante Option. Es wird gehostet, was vielleicht von Interesse ist oder nicht, aber es hat eine ziemlich einfache API und ein gutes SDK.

Ich bin mir sicher, dass es noch andere gibt, aber diese sind es, an die ich auf Anhieb denken kann.

Viel Glück und hab Spaß!

Avi Flachs
quelle
Oh, und ich habe neulich
Avi Flax
3

Ich bin ein PHP / C-Programmierer und habe festgestellt, dass ich mit Groovy in Java springen kann, ohne alle Klassen und Paradigmen zu lernen, die der Java-Programmierung innewohnen. Mit Groovy konnte ich schnell produktiv sein und mir Zeit nehmen, um mehr über Java und alle verfügbaren Tools / Frameworks / Bibliotheken zu erfahren.

mr-sk
quelle
3

Wenn Sie nicht mit HTML, CSS, XML, Javascript usw. arbeiten möchten.

Probieren Sie das Vaadin- Framework aus, es ist gut dokumentiert, leicht zu erlernen und ermöglicht auf einfache Weise eine gut aussehende Benutzeroberfläche. (Schreiben Sie einfach Java-Code, natürlich benötigen Sie einen Servlet-Server, Tomcat oder Jetty sind in Ordnung.)

Mokrzu
quelle
2

Besser lernen Sie Java. Dann lernen Sie Servlets und JSP. Dann gehen Sie für MVC zu Struts oder Spring oder einem anderen Java / Java-fähigen Framework.

SIVAKUMAR.J
quelle
0

Da Sie neu in Java sind, würde ich Ihnen dringend empfehlen, zuerst die Basissprache zu lernen. Dies hilft Ihnen unabhängig davon, in welcher Technologie Sie Ihre Webanwendung ausführen.

Eine gute Online-Ressource ist das Sun Java Tutorial - http://java.sun.com/docs/books/tutorial/

Thorbjørn Ravn Andersen
quelle