Devo conoscere servlet e JSP per imparare la primavera o l'ibernazione o qualsiasi altro framework Web Java? [chiuso]


17

Ho chiesto a molte persone dove iniziare a imparare lo sviluppo di java web, conosco già core java (Threading, Generics, Collections, una piccola esperienza con (JDBC)) ma non conosco JSP e servlet. Ho fatto la mia giusta parte di sviluppo con diverse applicazioni basate sul web usando PHP per lato server e HTML, CSS, Javascript, HTML5 per lato client.

La maggior parte delle persone a cui ho chiesto mi ha detto di saltare direttamente a Hibernate mentre alcuni mi hanno detto che non ho bisogno di imparare servlet e jsps e che dovrei studiare immediatamente il framework Spring. È vero? non ho bisogno di imparare servlet e JSP per imparare l'ibernazione o la primavera?

Tutte le loro risposte mi hanno confuso e ora sono completamente perso cosa imparare o studiare. Sento che se avessi saltato l'apprendimento di JSP e servlet, avrei perso molti concetti importanti che sicuramente mi aiuteranno in futuro.

Quindi la domanda, devo avere servlet di base / conoscere e JSP per imparare la primavera o l'ibernazione o qualsiasi altro framework web Java.


3
Si noti che l'ibernazione è solo un livello di astrazione del database, niente di più e può essere utilizzato per collegare un'origine dati a qualsiasi tipo di app java, non solo un'applicazione web.
Ed Griebel,

1
Conoscere servlet e JSP non farebbe male, dai un'occhiata a "Head First - Servlets and JSP". Una lettura di facile comprensione, ma copre anche molto.
Jaydee,

@Jaydee Attualmente sto guidando Core Servlets e JSP da Marty Hall + Murach e Servlet e JSP.
KyelJmD

Non credo che a questa domanda sia stata data una risposta adeguata. Bear Bibeault, un noto sviluppatore e autori insiste sul fatto che si impari JSP e Servlet prima di apprendere QUALSIASI framework. Qualcuno vuole mostrare perché questo potrebbe o non essere applicabile oggi? Ecco il suo post - coderanch.com/t/521300/JSP/java/JSP-servlets-struts
Borat Sagdiyev

Ok, ho ricevuto alcune risposte Bear Bibeault. Vedi questi due link - coderanch.com/t/633527/Spring/… e coderanch.com/t/633526/JSP/java/…
Borat Sagdiyev

Risposte:


17

Se hai una buona conoscenza di HTML, CSS e JavaScript, hai un vantaggio su molte persone che finiscono per fare lo sviluppo web. I concetti alla base di JSP sono molto simili a PHP. Le stranezze sono diverse. Un servlet è il nome di un blocco di codice Java che serve una richiesta. È proprio così. L'intero framework originale Struts era un singolo servlet.

Vorrei aggiungere Tomcat o Jetty al tuo elenco di tecnologie per imparare. Tomcat è l'implementazione originale di Java Servlet Container e sembra essere anche un server Web completo e piuttosto popolare. GlassFish è costruito su di esso. Ho usato Jetty invece di Tomcat nei miei progetti più recenti perché è più semplice, più flessibile e più veloce. Jetty è stato progettato per rendere i servizi Web invece delle app Web. Ma un'app Web è solo un servizio Web che serve HTML in risposta a richieste HTTP non elaborate, quindi se capisci l'HTTP (di cui puoi imparare le parti importanti in poche ore al giorno), è molto facile lavorare.

Puoi creare un piccolo sito Web con Tomcat e JSP ( tutorial qui o JSF) sapendo esattamente quello che sai e trascorrendo alcune ore a seguire i tutorial. In questo modo puoi iniziare da dove ti senti a tuo agio prima di allungarti. Quindi crea un javax.servlet.http.HttpServlet che scrive "<html> <head> <title> Ciao </title> </head> <body> <h1> Hello World </h1> </body> </ html > "all'oggetto risposta, elencalo nel tuo Tomcat web.xml e invia una richiesta HTTP da un browser web. Non è scienza missilistica. Tutti i framework Web Java sono variazioni su queste due attività di base.

Se segui il percorso del molo, è ancora meno strutturato. Dai un'occhiata a questo esempio di Hello Jetty .

Se hai intenzione di creare un blog o un sito di e-commerce standard, inizierei con SquareSpace o Wordpress o qualcosa del genere. Ottieni così tanto dallo scaffale, non c'è più modo di giustificare la codifica personalizzata.

Il punto di forza di Java per le applicazioni Web è la sua affidabilità, manutenibilità e prestazioni. PHP o Ruby / Rails è più semplice, ma Java ridimensionerà quanto vuoi. Non sono ammaliato da nessuno dei framework web Java. Quando hai un team di persone che lavora su una grande applicazione web o devi usare Hibernate, allora un framework come Spring brilla davvero. La primavera è la più popolare. Quando hai familiarità con i servlet e JSP / JSF, allora impara come Spring li lega a un modello di dati.

Se stai creando un blog o un sistema di gestione dei contenuti, forse puoi cavartela con un database NoSQL. Ma direi che i database NoSQL sono fondamentalmente solo un livello di memorizzazione nella cache su un file system, piuttosto che sostituire i database relazionali. Penso che sia raro che un progetto adatto a un database NoSQL sarà appropriato per lo sviluppo in Java.

Le cose che richiedono ancora un codice personalizzato e ad alte prestazioni (in Java, PHP, qualunque cosa) probabilmente avranno un database relazionale / SQL che li alimenta. Ti consiglierei di acquisire prima una conoscenza di base di SQL e JDBC (Java Database Connectivity). Dopo aver acquisito familiarità con il mondo degli oggetti Java e il mondo dei database relazionali e di SQL, è possibile apprendere Ebean / JPA (Java Persistence API) / ORM (Object to Relational Mapping) che collega il mondo degli oggetti al mondo relazionale.

Gli ORM sono difficili e strani. La maggior parte alla fine vale la pena. Ebean è il più semplice che conosca. Mi sento più a mio agio dopo 8 mesi di quanto non lo sia con Hibernate dopo 12 anni. Conosco un sacco di persone che usano Spring con Hibernate e non sembrano avere alcun problema, o anche essere particolarmente consapevoli di ciò che è o fa Hibernate, quindi direi che se hai intenzione di usare Hibernate, fallo attraverso la primavera. Forse solo perché ci ho lavorato più a lungo, sono riuscito a stubare completamente Hibernate con un paio di mappe hash per i test, il che è fantastico (panoramica disponibile su richiesta).

Hai già alcune delle abilità più importanti. Prendi gli altri uno alla volta e cerca di non essere sopraffatto.


hai qualche link o tutorial in cui posso iniziare ad apprendere queste tecnologie? o forse un buon suggerimento per un libro. La maggior parte delle applicazioni che ho realizzato utilizza un RDBMS, da SQL Server a un semplice MySQl.
KyelJmD

Ho ripulito la mia risposta e aggiunto i collegamenti come richiesto. Hibernate / JPA e i vari framework Web richiedono tempo per apprendere e padroneggiare. La maggior parte delle altre tecnologie, sai già abbastanza che dovresti essere in grado di lavorare in poche ore o un giorno. Non conosco Spring, ma controlla la documentazione sul loro sito web o ottieni un libro molto apprezzato su Amazon.
GlenPeterson,

Non vedo come questo risponda alla domanda. Bear Bibeault, un noto sviluppatore e autori insiste sul fatto che si impari JSP e Servlet prima di apprendere QUALSIASI framework. Vuoi mostrare perché questo potrebbe o non essere applicabile oggi? Ecco il suo post - coderanch.com/t/521300/JSP/java/JSP-servlets-struts
Borat Sagdiyev

@GlenPeterson, "L'intero framework Struts originale era un singolo servlet." senso? Non rallenterebbe ogni chiamata http?
Pacerier,

@Pacerier Abbiamo usato Struts 1 in Tomcat come servlet. Il servlet Controller Struts invierebbe richieste diverse a thread diversi come farebbe un server Web, proprio a livello di servlet anziché a livello di contenitore. Immagino che il sovraccarico sia minimo. Ciò che tende ad essere più lento sono le chiamate al database. Secondo più lento, costruendo l'HTML e restituendolo al client. All'epoca era popolare utilizzare un server separato per contenuti statici per la velocità, quindi ha funzionato.
GlenPeterson,

4

Suggerirei di conoscere JSP e Servlet di base in quanto ti aiuteranno a cogliere i concetti semplificati in primavera. Dato che hai esperienza con i CGI basati su PHP, la maggior parte dei JSP / Servlet avrà solo modi diversi di fare cose che conosci, quindi dovrebbe andare abbastanza rapidamente. La cosa più difficile che potresti trovare sarà raccogliere gli idiomi unici nel mondo Java.

Per quanto riguarda Hibernate, concordo con MebAlone e dirò di impararlo se è necessario, ma se è già impostato puoi fare il 90% di ciò che ti serve semplicemente limitando ciò che altri hanno fatto.


2

Sembra che tu voglia imparare lo sviluppo web sul lato server con Java. Esistono numerosi framework. Spring MVC è in effetti il ​​più popolare, è maturo, molto completo e un buon quadro da conoscere. Spring MVC e altri web framework Java estraggono l'API servlet java dal programmatore, quindi tecnicamente non è necessario conoscerlo. Ma suggerirei di imparare le basi, in particolare le classi chiave. Una giornata di studio dovrebbe portarti lì.

Per quanto riguarda JSP, se conosci PHP hai già capito gli elementi essenziali. JSP è la versione java di scripting lato server.

Hibernate è un'implementazione (la più popolare) di JPA, che è la specifica java per gli oggetti persistenti su RDBMS. Con l'esplosione della popolarità dei db di NOSQL (Hadoop, Mongo, ecc.), Hibernate è molto meno un "must know" di quanto non fosse nemmeno 18 mesi fa. Personalmente imparo le tecnologie di archiviazione in base alle necessità perché ce ne sono molte e perdi ciò che non usi.


Quale libro potresti suggerire per Spring MVC? qual è la differenza scommessa Spring and Spring MVC?
KyelJmD

Spring è uno stack di tecnologia Java che include un'ampia varietà di progetti. Spring MVC è il framework web lato server. La documentazione online di Spring e le applicazioni di esempio sono il modo migliore per imparare Spring MVC.
MebAlone,

2

Risposta breve: no, non è necessario apprendere Servlet e JSP come prerequisito per Spring MVC e molti altri framework Web Java.

Prima facciamo uscire Hibernate dall'immagine. È un framework di livello di persistenza e non ha nulla a che fare con servlet e JSP.

L'API Servlet è il livello più basso per quasi tutti i framework Web Java. Anche i JSP sono compilati in servlet.

Spring MVC è un livello in cima all'API Servlet con molte utili estensioni e integrazione con Spring Core. È possibile utilizzare JSP come meccanismo di rendering per Spring MVC. Il tutorial di Spring MVC ti porterà da zero per creare app Web. Man mano che avanzi, imparerai a conoscere i JSP e sarai ben attrezzato anche per comprendere l'API Servlet.


quale libro o video tutorial suggeriresti per imparare Spring MVC?
KyelJmD


1
@YuriyZubarev - Non vedo come questo risponda alla domanda. Bear Bibeault, un noto sviluppatore e autori insiste sul fatto che si impari JSP e Servlet prima di apprendere QUALSIASI framework. Vuoi mostrare perché questo potrebbe o non essere applicabile oggi? Ecco il suo post - coderanch.com/t/521300/JSP/java/JSP-servlets-struts
Borat Sagdiyev

-1

sembra che tu sia bloccato su un problema che ho affrontato di recente. Il mio obiettivo era imparare lo sviluppo lato server con Java. Quindi, ho iniziato con i servlet, compreso il loro funzionamento e scritto alcuni semplici programmi da eseguire sul server TomCat. TomCat è un prerequisito. Dovresti assolutamente conoscere TomCat se vuoi procedere oltre. Per quanto riguarda struts2 o Spring, struts2 e spring sono framework costruiti su servlet, il che rende essenziale avere una profonda conoscenza dei servlet se si vuole essere forti alle basi. Ho iniziato con i tutorial di Java Brains. Per un principiante, questi tutorial sono fantastici. Anche alcune opere di Jakob Jenkov sul suo blog sono davvero sorprendenti. Struts2 e Spring diventano più semplici quando conosci i servlet. Per quanto riguarda l'ibernazione, ti suggerisco di iniziare con la conoscenza di JDBC. Andare per gradi, servlet, puntoni, JDBC, Spring, Hibernate. Spero che la mia risposta aiuti :).


questo post è piuttosto difficile da leggere (wall of text). Ti dispiacerebbe modificarlo in una forma migliore?
moscerino del
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.