it-swarm.com.de

Muss ich Servlets und JSP kennen, um Spring oder Hibernate oder andere Java Web Frameworks) zu lernen?

Ich habe viele Leute gefragt, wo sie anfangen sollen zu lernen Java Webentwicklung, ich kenne bereits core Java (Threading, Generika, Sammlungen, ein wenig Erfahrung) mit (JDBC)), aber ich kenne keine JSPs und Servlets. Ich habe meinen Teil der Entwicklung mit mehreren webbasierten Anwendungen mit PHP für serverseitig und HTML, CSS, Javascript, HTML5 für) durchgeführt Client-Seite.

Die meisten Leute, die ich gefragt habe, sagten mir, ich solle direkt in den Ruhezustand springen, während einige mir sagten, dass ich keine Servlets und JSPs lernen muss und sofort das Spring-Framework studieren sollte. Ist das wahr? Muss ich keine Servlets und JSPs lernen, um den Ruhezustand oder den Frühling zu lernen?

Alle ihre Antworten haben mich verwirrt und jetzt bin ich völlig verloren, was ich lernen oder lernen soll. Ich habe das Gefühl, wenn ich das Erlernen von JSP und Servlets überspringen würde, würde ich viele wichtige Konzepte übersehen, die mir in Zukunft sicherlich helfen werden.

Also die Frage, brauche ich Foundation/Know-Servlets und JSP, um Spring oder Hibernate oder andere Java Web Frameworks) zu lernen?

17
KyelJmD

Wenn Sie sich mit HTML, CSS und JavaScript gut auskennen, haben Sie ein gutes Gespür für viele Leute, die am Ende Webentwicklung betreiben. Die Konzepte hinter JSP sind PHP sehr ähnlich. Die Macken sind unterschiedlich. Ein Servlet ist der Name für einen Teil des Codes Java, der eine Anforderung bedient. Das war's wirklich. Das gesamte ursprüngliche Struts-Framework war ein einzelnes Servlet.

Ich würde Tomcat oder Jetty zu Ihrer Liste der zu lernenden Technologien hinzufügen. Tomcat ist die ursprüngliche Java Servlet Container-Implementierung und zufällig auch ein voll funktionsfähiger und sehr beliebter Webserver. GlassFish ist darauf aufgebaut. Ich habe Jetty anstelle von Tomcat in meinen neueren Projekten verwendet, weil es einfacher, flexibler und schneller ist. Jetty wurde entwickelt, um Webdienste im Gegensatz zu Web-Apps zu erstellen. Eine Web-App ist jedoch nur ein Webdienst, der HTML als Antwort auf rohe HTTP-Anforderungen bereitstellt. Wenn Sie also HTTP verstehen (von dem Sie die wichtigen Teile in wenigen Stunden bis zu einem Tag lernen können), ist es sehr einfach, damit zu arbeiten.

Sie können eine kleine Website mit Tomcat und JSP ( Tutorial hier oder JSF) erstellen, die genau wissen, was Sie wissen, und einige Stunden damit verbringen, Tutorials durchzuarbeiten. Auf diese Weise können Sie dort beginnen, wo Sie sich wohl fühlen, bevor Sie sich ausstrecken. Erstellen Sie dann ein javax.servlet.http.HttpServlet , das "<html> <head> <title> Hi </ title> </ head> <body> <h1> Hello World </ h1> schreibt </ body> </ html> "zum Antwortobjekt, listen Sie es in Ihrer Tomcat-Datei web.xml auf und senden Sie eine HTTP-Anforderung von einem Webbrowser. Das ist kein Hexenwerk. Alle Java Web-Frameworks sind Variationen dieser beiden grundlegenden Aktivitäten.

Wenn Sie die Stegroute gehen, ist sie noch weniger strukturiert. Schauen Sie sich dieses Hello Jetty Beispiel an.

Wenn Sie nur ein Blog oder eine Standard-E-Commerce-Website erstellen möchten, beginne ich mit SquareSpace oder Wordpress oder so. Sie erhalten so viel von der Stange, dass es keine Möglichkeit mehr gibt, eine benutzerdefinierte Codierung zu rechtfertigen.

Die Stärke von Java für Webanwendungen liegt in der Zuverlässigkeit, Wartbarkeit und Leistung. PHP oder Ruby/Rails ist einfacher, aber Java skaliert so viel, wie Sie möchten. Ich bin von keinem der Java Web-Frameworks überwältigt. Wenn Sie ein Team von Mitarbeitern haben, die an einer großen Webanwendung arbeiten, oder wenn Sie den Ruhezustand verwenden müssen, ist ein Framework wie Spring wirklich eine gute Wahl. Der Frühling ist der beliebteste. Wenn Sie mit Servlets und JSP/JSF vertraut sind, erfahren Sie, wie Spring diese mit einem Datenmodell verknüpft.

Wenn Sie ein Blog oder ein Content-Management-System erstellen, können Sie möglicherweise mit einer NoSQL-Datenbank davonkommen. Aber ich würde argumentieren, dass NoSQL-Datenbanken im Grunde genommen nur eine Caching-Schicht in einem Dateisystem sind, anstatt relationale Datenbanken zu ersetzen. Ich denke, es ist selten, dass ein Projekt, das gut zu einer NoSQL-Datenbank passt, für die Entwicklung in Java geeignet ist.

Dinge, die noch benutzerdefinierten Hochleistungscode erfordern (in Java, PHP, was auch immer), werden wahrscheinlich von einer relationalen/SQL-Datenbank unterstützt. Ich würde empfehlen, dass Sie sich zuerst mit SQL und JDBC (Java Database Connectivity) vertraut machen. Nachdem Sie mit der Welt der Java Objekte und der Welt der relationalen Datenbanken und SQL vertraut sind, können Sie Ebean / JPA (Java Persistence API)/ORM (Object to Relational Mapping), das die Objektwelt mit der relationalen Welt verbindet.

ORMs sind knifflig und komisch. Die meisten sind schließlich den Kampf wert. Ebean ist das einfachste, das ich kenne. Nach 8 Monaten fühle ich mich damit wohler als nach 12 Jahren mit Hibernate. Ich kenne viele Leute, die Spring mit Hibernate verwenden, und sie scheinen keine Probleme zu haben oder sich sogar besonders bewusst zu sein, was Hibernate ist oder tut. Ich würde also sagen, wenn Sie Hibernate verwenden, tun Sie es durch den Frühling. Vielleicht, nur weil ich länger damit gearbeitet habe, habe ich es geschafft, Hibernate mit ein paar Hash-Maps zum Testen komplett auszublenden, was großartig ist (Übersicht auf Anfrage erhältlich).

Sie haben bereits einige der wichtigsten Fähigkeiten. Nehmen Sie die anderen einzeln und versuchen Sie, nicht überfordert zu werden.

17
GlenPeterson

Ich würde vorschlagen, sich mit grundlegenden JSPs und Servlets vertraut zu machen, da dies Ihnen hilft, die Konzepte zu verstehen, die im Frühjahr vereinfacht werden. Da Sie Erfahrung mit PHP-basierten CGIs haben, können die meisten JSP/Servlets nur verschiedene Methoden ausführen, mit denen Sie vertraut sind. Daher sollte dies relativ schnell gehen. Das Schwierigste, was Sie finden können, ist, die einzigartigen Redewendungen in der Java Welt) aufzugreifen.

Was den Ruhezustand betrifft, stimme ich MebAlone zu und sage, lerne es, wenn es nötig ist, aber wenn es bereits eingerichtet ist, kannst du 90% von dem tun, was du brauchst, indem du nur das abschreibst, was andere getan haben.

4
Ed Griebel

Es hört sich so an, als ob Sie die serverseitige Webentwicklung mit Java lernen möchten. Es gibt eine Reihe von Frameworks. Spring MVC ist in der Tat das beliebteste, es ist ausgereift, sehr voll funktionsfähig und ein guter Rahmen zu wissen. Spring MVC und andere Java Web-Frameworks abstrahieren die Java Servlet-API vom Programmierer - technisch gesehen müssen Sie es also nicht wissen. Aber ich würde vorschlagen, etwas zu lernen die Grundlagen - insbesondere die Schlüsselklassen. Ein Tag des Studiums sollte Sie dorthin bringen.

Was JSP betrifft, wenn Sie PHP kennen), verstehen Sie bereits das Wesentliche. JSP ist Javas Version von serverseitigem Scripting.

Hibernate ist eine Implementierung (die beliebteste) von JPA, bei der es sich um die Java - Spezifikation für persistierende Objekte in RDBMS handelt. Mit der zunehmenden Beliebtheit von NOSQL-Datenbanken (Hadoop, Mongo usw.) ist Hibernate Viel weniger ein "Muss" als noch vor 18 Monaten. Persönlich lerne ich Speichertechnologien auf einer Basis, die man wissen muss, weil es viele davon gibt und man verliert, was man nicht verwendet.

2
MebAlone

Kurze Antwort: Nein, Sie müssen nicht Servlets und JSPs als Voraussetzung für Spring MVC und viele andere Java Web Frameworks.

Lassen Sie uns zuerst den Ruhezustand aus dem Bild entfernen. Es ist ein Persistenzschicht-Framework und hat nichts mit Servlets und JSPs zu tun.

Die Servlet-API ist die niedrigste Ebene für fast alle Java Web-Frameworks. Sogar JSPs werden zu Servlets kompiliert.

Spring MVC ist eine Schicht über der Servlet-API mit vielen hilfreichen Erweiterungen und der Integration in Spring Core. Sie können JSPs als Rendering-Mechanismus für Spring MVC verwenden. Das Spring MVC-Tutorial führt Sie von Grund auf zum Erstellen von Web-Apps. Im Laufe der Zeit lernen Sie JSPs kennen und sind gut gerüstet, um auch die Servlet-API zu verstehen.

2
Yuriy Zubarev