Atualmente estou estudando para a certificação OCA, além de estar revisitando tópicos como Servlets e .JSP. Eu não sinto que tenho conhecimento estruturado de uma parte disso, e estou gastando um tempo para ter uma base sólida de conhecimento, entretanto já trabalhei com PrimeFaces, Hibernate, que são frameworks que abstraem muito do que ocorre por debaixo dos panos.
O que gostaria de saber da opinião de terceiros é: Vale a pena gastar tempo estruturando uma base? Pois tenho ciência que o tempo gasto estudando para tais tópicos, alguém está gastando estudando, por exemplo, um framework como Spring e fazendo aplicações rapidamente.
Na minha humilde opnião, aprofunde seus estudos com o que você vai utilizar, seja para trabalhar ou outra coisa, porém tenha sempre uma base sólida de como tudo funciona, pois os frameworks nada mais são do que facilitadores que por baixo dos panos fazem a mesma coisa.
Não discordando do que o @Jonathan_Medeiros disse, mas, sob uma outra perspectiva, nada do que você estuda é perdido.
Obviamente, o que você vai usar para desenvolver profissionalmente dificilmente incorrerá em coisas tão primitivas e complexas quanto servlets (JSP é uma servlet).
Porém, é fundamental entender o ciclo de vida de aplicações java web. Saber como as coisas funcionam “debaixo dos panos” e como resolver eventuais problemas que podem acontecer devido a essas abstrações.
Novamente, linguagem de programação é uma ferramenta. Logo, você não deveria focar em aprender coisas específicas da linguagem (embora isso seja fundamental para programar), o que importa são os conceitos.
Com o conceito, você implementa algoritmos em qualquer linguagem (com maior ou menor facilidade).
O problema é que a prática não é conceitual e muito do que se desenvolve depende, exclusivamente, de recursos específicos da linguagem (o que vai totalmente contra o que eu acabei de dizer).
Eu sugiro, portanto, que você trace um plano de estudos.
Trabalhou com JSF (primefaces) e gostou? Achou verboso? Achou chato?
Eu seria muito pragmático se dissesse: estude Spring.
Como não pretendo ser, digo que você precisa estudar o que o mercado pede (concordando com o nosso colega da resposta anterior): estude o que vai usar para trabalhar ou outra coisa (estudo).
Esses dias, um tópico falava sobre JSTL e EL. Cara, essas coisas sim, eram tecnologias revolucionárias.
Eu tenho acompanhado o mercado europeu e lá Spring é muito forte, sobrepondo-se até a JEE.
É fácil entender por que: Spring é imensamente mais fácil, você começa algo em Spring com poucas configurações e quase sem complicações. Toda a stack do Spring Boot e a facilidade de integrar Spring Data, JdbcTemplate, Spring Security e muito mais.
Só para fazer um simples crud no JEE, hoje, você tem uma complexidade muito grande, coisa que o Spring abstrai. E é o que deve fazer, afinal, ele é um framework e o seu objetivo é abstrair a complexidade e permitir o foco no desenvolvimento.
O JEE engloba toda a estrutura de soluções para java web, persistência, transações e mais umas coisas. Há quem diga que o JSE é parte do JEE (embora você dificilmente encontre uma aplicação Swing (que é parte do JSE) sendo desenvolvida em um contexto JEE).
Minha posição é sempre: aprenda tudo o que pode.
Como eu comentei na minha primeira resposta: é fundamental entender coisas como ciclo de vida, funcionamento “por baixo dos panos” e eventuais problemas que as camadas de abstração ocultam.
Porém, a utilidade deste aprendizado seria, unicamente, entender como coisas mais modernas funcionam, afinal, será difícil iniciar um projeto com tais tecnologias, por serem antigas (JSP e servlets são do fim dos anos 1990), verbosas, de difícil manutenção e, de certo modo, engessadas (menos que JSF, no meu modo de ver, mas, engessadas).
Se você olhar o que se tem de opção para desenvolvimento MVC web hoje em dia, pé até covardia pensar em uma solução assim.
Só o Spring MVC já dá um baile nisso tudo.
Analisando as respostas, acabo por ver o que temia: com certeza o que foi aprendido não será descartado, mas em compensação é um pouco de perda de tempo, afinal, como dito acima, as tecnologias atuais abstraem e fazem o mesmo com muita facilidade, exemplo é tratar um formulário com Servlet, muito triste.
Continuarei a estudar para a certificação, que é um caso a parte, algo que tenho aprendido muito detalhe que nunca vi e me interesso, mas acabando essa parte de servlet acredito que migrarei meus estudos para o Spring
Se você avançar um pouquinho nos estudos, logo encontrará javaBeans, que trata formulários com mais facilidade. Depois, JSTL, que torna muito mais amigável o processo de tratar elementos do backend no frontend (jsp).
Mas, nada vai se comparar ao que você tem num Spring MVC da vida.