Se você tem uma boa noção de HTML, CSS e JavaScript, tem muitas pessoas que acabam desenvolvendo a Web. Os conceitos por trás do JSP são muito semelhantes ao PHP. As peculiaridades são diferentes. Um servlet é o nome de um pedaço de código Java que atende a uma solicitação. É isso mesmo. Toda a estrutura original do Struts era um único servlet.
Eu adicionaria Tomcat ou Jetty à sua lista de tecnologias para aprender. O Tomcat é a implementação original do Java Servlet Container e também é um servidor da Web completo e bastante popular. O GlassFish é construído sobre ele. Eu tenho usado o Jetty em vez do Tomcat em meus projetos mais recentes porque é mais simples, mais flexível e mais rápido. O Jetty foi projetado para criar serviços da Web em vez de aplicativos da Web. Mas um aplicativo da Web é apenas um serviço da Web que serve HTML em resposta a solicitações HTTP brutas; portanto, se você entende o HTTP (com o qual pode aprender as partes importantes em poucas horas a um dia), é muito fácil trabalhar com ele.
Você pode criar um pequeno site com Tomcat e JSP ( tutorial aqui ou JSF), sabendo exatamente o que você sabe e passando algumas horas passando por tutoriais. Dessa forma, você pode começar onde se sentir confortável antes de se alongar. Em seguida, crie um javax.servlet.http.HttpServlet que escreva "<html> <head> <title> Olá </title> </head> <body> <h1> Olá, mundo </h1> </body> </ html > "para o objeto de resposta, liste-o no seu Tomcat web.xml e envie uma solicitação HTTP a partir de um navegador da web. Não é ciência de foguetes. Todas as estruturas da web Java são variações nessas duas atividades básicas.
Se você seguir a rota Jetty, é ainda menos estruturada. Confira este exemplo do Hello Jetty .
Se você quiser criar um blog ou site de comércio eletrônico padrão, eu começaria com o SquareSpace ou Wordpress ou algo assim. Você obtém tanto da prateleira que não há mais como justificar a codificação personalizada.
A força do Java para aplicativos da web é sua confiabilidade, manutenção e desempenho. PHP ou Ruby / Rails é mais simples, mas o Java será escalado o quanto você quiser. Não sou atropelado por nenhuma das estruturas da web Java. Quando você tem uma equipe trabalhando em um aplicativo Web grande ou precisa usar o Hibernate, uma estrutura como o Spring realmente brilha. A primavera é a mais popular. Quando você tiver alguma familiaridade com servlets e JSP / JSF, aprenda como o Spring vincula esses usuários a um modelo de dados.
Se você está criando um blog ou um sistema de gerenciamento de conteúdo, talvez possa se safar de um banco de dados NoSQL. Mas eu argumentaria que os bancos de dados NoSQL são basicamente apenas uma camada de cache em um sistema de arquivos, em vez de substituir os bancos de dados relacionais. Eu acho que é raro que um projeto que seja adequado para um banco de dados NoSQL seja apropriado para desenvolver em Java.
As coisas que ainda exigem código personalizado de alto desempenho (em Java, PHP, qualquer que seja) provavelmente terão um banco de dados relacional / SQL para alimentá-las. Eu recomendo que você tenha uma familiaridade básica com SQL e JDBC (Java Database Connectivity) primeiro. Depois de se sentir confortável com o mundo dos objetos Java e o mundo dos bancos de dados relacionais e SQL, você poderá aprender o Ebean / JPA (Java Persistence API) / ORM (Objeto para Mapeamento Relacional) que conecta o mundo dos objetos ao mundo relacional.
ORM são complicados e estranhos. A maioria acaba valendo a luta. Ebean é o mais simples que eu conheço. Estou mais confortável com ele após 8 meses do que com o Hibernate após 12 anos. Conheço muitas pessoas que usam o Spring com o Hibernate e elas não parecem ter nenhum problema, ou mesmo estão particularmente conscientes do que o Hibernate é ou faz, então eu diria que, se você for usar o Hibernate, faça-o através da primavera. Talvez apenas porque trabalhei com ele por mais tempo, eu consegui esboçar completamente o Hibernate com alguns mapas de hash para teste, o que é incrível (visão geral disponível mediante solicitação).
Você já possui algumas das habilidades mais importantes. Pegue os outros um de cada vez e tente não ficar sobrecarregado.