Muss ich Servlets und JSP kennen, um Spring oder Hibernate oder andere Java-Webframeworks zu lernen? [geschlossen]


17

Ich habe viele Leute gefragt, wo sie Java-Webentwicklung lernen sollen. Ich kenne Java-Kern (Threading, Generics, Collections, ein wenig Erfahrung mit (JDBC)), aber ich kenne keine JSPs und Servlets. Ich habe meinen Teil der Entwicklung mit mehreren webbasierten Anwendungen gemacht, die PHP für die Serverseite und HTML, CSS, Javascript, HTML5 für die Clientseite verwendeten.

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

Alle ihre Antworten verwirrten mich und jetzt bin ich völlig verloren, was ich lernen oder lernen soll. Ich habe das Gefühl, dass ich, wenn ich das Lernen von JSP und Servlets auslassen würde, viele wichtige Konzepte verpasst hätte, die mir sicherlich in Zukunft helfen werden.

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


3
Beachten Sie, dass der Ruhezustand nur eine Datenbankabstraktionsschicht ist und nicht mehr. Er kann verwendet werden, um eine Datenquelle in eine beliebige Java-App einzubinden, nicht nur in eine Webanwendung.
Ed Griebel

1
Das Wissen über Servlets und JSP würde nicht schaden, schauen Sie sich "Head First - Servlets und JSP" an. Eine leicht verständliche Lektüre, die aber auch viel abdeckt.
Jaydee

@Jaydee Ich leite derzeit Core Servlets und JSP von Marty Hall + Murachs Servlets und JSP.
KyelJmD,

Ich denke nicht, dass diese Frage angemessen beantwortet wurde. Bear Bibeault, ein bekannter Entwickler und Autor, besteht darauf, dass man JSP und Servlets lernt, bevor man ein beliebiges Framework lernt. Möchte jemand zeigen, warum dies heute möglicherweise zutrifft oder nicht? Hier ist sein Beitrag - coderanch.com/t/521300/JSP/java/JSP-servlets-struts
Borat Sagdiyev

Okay, ich habe einige Antworten von Bear Bibeault. Siehe diese beiden Links - coderanch.com/t/633527/Spring/… und coderanch.com/t/633526/JSP/java/…
Borat Sagdiyev

Antworten:


17

Wenn Sie ein gutes Verständnis für HTML, CSS und JavaScript haben, haben Sie ein 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 Java-Codes, der eine Anforderung bedient. Das ist es 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 ausgestatteter und recht beliebter Webserver. GlassFish baut darauf auf. Ich habe in meinen neueren Projekten Jetty anstelle von Tomcat verwendet, weil es einfacher, flexibler und schneller ist. Jetty wurde entwickelt, um Webdienste im Gegensatz zu Webanwendungen bereitzustellen. Eine Webanwendung ist jedoch nur ein Webdienst, der HTML-Code als Antwort auf HTTP-Rohanforderungen bereitstellt. Wenn Sie also HTTP verstehen (das Sie in wenigen Stunden bis zu einem Tag in wichtigen Teilen erlernen 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> Hallo </ title> </ head> <body> <h1> Hallo Welt </ h1> </ body> </ html" schreibt > "zum Antwortobjekt, listen Sie es in Ihrer Tomcat-Datei web.xml auf und senden Sie eine HTTP-Anfrage über einen Webbrowser. Das ist kein Hexenwerk. Alle Java-Webframeworks sind Variationen dieser beiden grundlegenden Aktivitäten.

Wenn Sie die Anlegestellenroute wählen, ist sie noch weniger strukturiert. Schauen Sie sich dieses Hello Jetty- Beispiel an.

Wenn Sie nur ein Blog oder eine Standard-E-Commerce-Site erstellen möchten , würde ich mit SquareSpace oder Wordpress oder so beginnen. Sie bekommen 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 seiner Zuverlässigkeit, Wartbarkeit und Leistung. PHP oder Ruby / Rails ist einfacher, aber Java lässt sich beliebig skalieren. Ich bin nicht begeistert von den Java-Webframeworks. Wenn Sie ein Team von Mitarbeitern haben, die an einer großen Webanwendung arbeiten, oder wenn Sie Hibernate verwenden möchten, dann ist ein Framework wie Spring wirklich hervorragend. 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 vielleicht mit einer NoSQL-Datenbank davonkommen. Ich würde jedoch argumentieren, dass NoSQL-Datenbanken im Grunde genommen nur eine Caching-Ebene 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, leistungsstarken Code benötigen (in Java, PHP, was auch immer), werden wahrscheinlich eine relationale / SQL-Datenbank haben, die sie antreibt. Ich würde Ihnen empfehlen, sich zunächst mit SQL und JDBC (Java Database Connectivity) vertraut zu machen. Wenn 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) erlernen, das die Objektwelt mit der relationalen Welt verbindet.

ORMs sind knifflig und komisch. Die meisten sind irgendwann den Kampf wert. Ebean ist die einfachste, die ich kenne. Ich fühle mich nach 8 Monaten wohler damit als nach 12 Jahren mit Hibernate. Ich kenne eine Menge Leute, die Spring mit Hibernate verwenden, und sie scheinen keine Probleme zu haben oder sich sogar besonders darüber im Klaren zu sein, was Hibernate ist oder tut. Deshalb würde ich sagen, wenn Sie Hibernate verwenden, tun Sie es durch den Frühling. Vielleicht, nur weil ich schon länger damit gearbeitet habe, habe ich es geschafft, Hibernate mit ein paar Hash-Maps zum Testen komplett auszuschalten, was fantastisch ist (Übersicht auf Anfrage erhältlich).

Sie haben bereits einige der wichtigsten Fähigkeiten. Nimm die anderen nacheinander und versuche nicht überfordert zu werden.


Haben Sie Links oder Anleitungen, über die ich die genannten Technologien erlernen kann? oder vielleicht ein guter Vorschlag für ein Buch. Die meisten Anwendungen, die ich erstellt habe, verwenden ein RDBMS, von SQL Server bis zu einem einfachen MySQl.
KyelJmD

Ich habe meine Antwort bereinigt und Links wie gewünscht hinzugefügt. Hibernate / JPA und die verschiedenen Web-Frameworks brauchen Zeit zum Lernen und Beherrschen. Die meisten anderen Technologien kennen Sie bereits so gut, dass Sie in ein paar Stunden oder an einem Tag arbeiten können. Ich kenne Spring nicht, aber sieh dir die Dokumentation auf ihrer Website an oder besorge dir ein hoch bewertetes Buch bei Amazon.
GlenPeterson

Ich verstehe nicht, wie dies die Frage beantwortet. Bear Bibeault, ein bekannter Entwickler und Autor, besteht darauf, dass man JSP und Servlets lernt, bevor man ein beliebiges Framework lernt. Möchten Sie zeigen, warum dies heute möglicherweise zutrifft oder nicht? Hier ist sein Beitrag - coderanch.com/t/521300/JSP/java/JSP-servlets-struts
Borat Sagdiyev

@ GlenPeterson, "Das gesamte ursprüngliche Struts-Framework war ein einzelnes Servlet." Bedeutung? Würde es nicht jeden http-Aufruf langsam machen?
Pacerier

@Pacerier Wir haben Struts 1 in Tomcat als Servlet geladen. Das Struts Controller-Servlet sendet unterschiedliche Anforderungen an unterschiedliche Threads auf die gleiche Weise wie ein Webserver, nur auf Servlet-Ebene anstelle der Containerebene. Ich stelle mir vor, der Aufwand war minimal. Am langsamsten sind die Datenbankaufrufe. 2. am langsamsten, HTML erstellen und an den Client zurückgeben. Zu der Zeit war es beliebt, einen separaten Server für statische Inhalte zu verwenden, damit es schnell gehen konnte.
GlenPeterson

4

Ich empfehle Ihnen, sich mit grundlegenden JSP- und Servlet-Funktionen vertraut zu machen, um die Konzepte zu verstehen, die im Frühjahr vereinfacht werden. Da Sie Erfahrung mit PHP-basierten CGIs haben, werden die meisten JSP / Servlets nur unterschiedliche Methoden verwenden, 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.

In Bezug auf den Ruhezustand stimme ich MebAlone zu und sage, dass Sie es lernen können, wenn Sie es brauchen. Wenn es jedoch bereits eingerichtet ist, können Sie 90% dessen tun, was Sie brauchen, indem Sie nur das tun, was andere getan haben.


2

Es hört sich so an, als ob Sie die serverseitige Webentwicklung mit Java erlernen 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, den man kennen muss. Spring MVC und andere Java-Webframeworks abstrahieren die Java-Servlet-API vom Programmierer - technisch müssen Sie sie also nicht kennen. Aber ich würde vorschlagen, die Grundlagen zu lernen - insbesondere die Schlüsselklassen. Ein Tag des Lernens sollte Sie dorthin bringen.

Was JSP angeht, wenn Sie PHP beherrschen, haben Sie bereits das Wesentliche verstanden. JSP ist Java-Version des serverseitigen Skripts.

Hibernate ist eine Implementierung (die beliebteste) von JPA, der Java-Spezifikation für persistente Objekte in RDBMS. Mit der wachsenden Popularität von NOSQL-Datenbanken (Hadoop, Mongo usw.) ist Hibernate weitaus weniger ein Muss als noch vor 18 Monaten. Persönlich lerne ich Speichertechnologien auf einer Basis, die man kennen muss, weil es viele davon gibt und man verliert, was man nicht nutzt.


Welches Buch könnten Sie für Spring MVC vorschlagen? Was ist der Unterschied zwischen Spring und Spring MVC?
KyelJmD

Spring ist ein Java-Technologiepaket, das eine Vielzahl von Projekten umfasst. Spring MVC ist das serverseitige Webframework. Die Online-Dokumentation und Beispielanwendungen von Spring sind der beste Weg, um Spring MVC zu erlernen.
MebAlone

2

Kurze Antwort: Nein, Sie nicht benötigen als Voraussetzung für Spring MVC und viele andere Java Web - Frameworks zu lernen Servlets und JSPs.

Lassen Sie uns Hibernate zuerst aus dem Bild bekommen. Es ist ein Persistenz-Layer-Framework und hat nichts mit Servlets und JSPs zu tun.

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

Spring MVC ist eine Schicht auf der Servlet-API mit vielen hilfreichen Erweiterungen und der Integration in Spring Core. Sie können JSPs als Rendermechanismus für Spring MVC verwenden. Das Spring MVC-Tutorial wird Sie von Grund auf dabei unterstützen, Web-Apps zu erstellen. Wenn Sie fortfahren, werden Sie mehr über JSPs erfahren, und Sie werden gut gerüstet sein, auch die Servlet-API zu verstehen.


Welches Buch oder Video-Tutorial würden Sie vorschlagen, um Spring MVC zu lernen?
KyelJmD


1
@YuriyZubarev - Ich verstehe nicht, wie dies die Frage beantwortet. Bear Bibeault, ein bekannter Entwickler und Autor, besteht darauf, dass man JSP und Servlets lernt, bevor man ein beliebiges Framework lernt. Möchten Sie zeigen, warum dies heute möglicherweise zutrifft oder nicht? Hier ist sein Beitrag - coderanch.com/t/521300/JSP/java/JSP-servlets-struts
Borat Sagdiyev

-1

anscheinend stecken Sie in einem Problem fest, mit dem ich vor kurzem konfrontiert wurde. Mein Ziel war es, die serverseitige Entwicklung mit Java zu erlernen. Also begann ich mit Servlets, verstand deren Arbeitsweise und schrieb einige einfache Programme, die auf dem TomCat-Server ausgeführt werden sollten. TomCat ist eine Voraussetzung. Sie sollten auf jeden Fall mit TomCat vertraut sein, wenn Sie fortfahren möchten. Für Struts2 oder Spring sind Struts2 und Spring Frameworks, die auf Servlets basieren. Daher ist ein tiefes Verständnis der Servlets unerlässlich, wenn Sie die Grundlagen beherrschen möchten. Ich habe mit Java Brains Tutorials angefangen. Für einen Anfänger sind diese Tutorials erstaunlich. Einige Werke von Jakob Jenkov auf seinem Blog sind auch wirklich erstaunlich. Struts2 und Spring werden einfacher, wenn Sie Servlets kennen. Im Hinblick auf den Ruhezustand empfehle ich Ihnen, zunächst mit JDBC vertraut zu sein. Gehen Sie schrittweise, Servlets, Struts, JDBC, Spring, Hibernate. Hoffe meine Antwort hilft :).


Dieser Beitrag ist ziemlich schwer zu lesen (Textwand). Hätten Sie etwas dagegen bearbeiten sie in eine bessere Form ing?
gnat
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.