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 una porzione di codice Java che serve una richiesta. Questo è davvero. L'intero framework originale di Struts era un singolo servlet.
Vorrei aggiungere Tomcat o Jetty al tuo elenco di tecnologie da apprendere. Tomcat è l'implementazione del contenitore Java Servlet originale e sembra anche essere un server Web completo e piuttosto popolare. GlassFish è costruito sopra 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 realizzare servizi web anziché app web. Ma un'app web è solo un servizio Web che serve l'HTML in risposta a richieste HTTP non elaborate, quindi se comprendi il protocollo HTTP (che puoi imparare le parti importanti in poche ore al giorno), è molto facile lavorare con
Puoi creare un piccolo sito web con Tomcat e JSP ( tutorial qui o JSF) sapendo quello che sai e trascorrendo alcuni ore passate attraverso le esercitazioni. In questo modo puoi iniziare dove ti trovi bene prima di allungarti. Quindi scrivi javax.servlet.http.HttpServlet che scrive "< html > < head > < title > Hi < / title > / head > < body > h1 > Hello World < / h1 < / body > < / html >" all'oggetto risposta, elencalo nel tuo web.xml Tomcat e invialo a HTTP da un browser web. Non è scienza missilistica. Tutti i framework web Java sono variazioni su queste due attività di base.
Se segui la rotta Jetty, è ancora meno strutturata. Dai un'occhiata a questo esempio 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. Si ottiene così tanto tempo fa, non c'è modo di giustificare la codifica personalizzata di tutto ciò.
Il punto di forza di Java per le applicazioni Web è l'affidabilità, la manutenibilità e le prestazioni. PHP o Ruby / Rails è più semplice, ma Java scalerà quanto vuoi. Non sono travolto da nessuno dei framework web Java. Quando hai un team di persone che lavorano su una grande applicazione web, o hai bisogno di usare Hibernate, allora un framework come Spring brilla davvero. La primavera è la più popolare. Quando hai dimestichezza con i servlet e JSP / JSF, scopri come Spring leghi quelli con un modello di dati.
Se stai creando un blog o un sistema di gestione dei contenuti, forse puoi farla franca con un database NoSQL. Ma direi che i database NoSQL sono fondamentalmente solo un livello di caching su un file system, piuttosto che sostituire i database relazionali. Penso che sia raro che un progetto adatto per un database NoSQL sia appropriato per lo sviluppo in Java.
Le cose che richiedono ancora un codice personalizzato ad alte prestazioni (in Java, PHP, qualunque sia) probabilmente avranno un database relazionale / SQL che le alimenta. Ti consigliamo di acquisire prima una familiarità di base con SQL e JDBC (Java Database Connectivity). Dopo aver familiarizzato con il mondo degli oggetti Java e con il mondo dei database relazionali e SQL, puoi imparare Ebean / JPA (Java Persistence API) / ORM (Object to Relational Mapping) che collega il mondo oggettivo al mondo relazionale.
Gli ORM sono complicati e bizzarri. La maggior parte alla fine vale la pena. Ebean è il più semplice che conosco. 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 addirittura essere particolarmente consapevoli di cosa sia o meno l'ibernazione, quindi direi se userai l'ibernazione, fallo attraverso la primavera. Forse solo perché ho lavorato più a lungo, sono riuscito a spegnere completamente Hibernate con un paio di mappe hash per il 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.