Sou programador Java há algum tempo e estou querendo desenvolver aplicações web porém, tenho algumas dúvidas:
O que é nescessário para se desenvolver para web com JSP/Servlets/EJB?
Eu devo usar o J2SDK ou o J2EE?
O que é o JBoss?
Qual a diferença entre o Tomcat e o JBoss?
O que seria nescessário para se desenvolver um aplicativo web empresarial?
Servlets e http. Aprenda também a instalar e configurar o Apache.
tomcat (tomcat serve mal páginas estáticas html e páginas dinâmicas criadas pelos servlets). Não instale o tomcat no Windows com o pacote .exe. Use o tar.gz porque assim você já aprende como funciona em todos os ambientes.
jsp e velocity
jdbc e hibernate
Com isto você já consegue desenvolver qualquer coisa. Mas seria bom aprender a usar um framework do tipo Struts, webwork, vRaptor ou Spring. Para relatórios vai precisar do jasperreports e do iReport. Em todo canto vai trombar com xml.
Use j2sdk. Para testar os servlets é preciso de uma API que vem junto com o tomcat.
O JBoss serve EJBs e outras coisas mais que você pode deixar para o futuro.
Se você já quer usar EJBs é porque já sabe muito bem aquela trilha toda que citei. Então nesta caso vai precisar mesmo do JBoss ou similar.
Pelas suas dúvidas pensei que você ainda ia aprender o básico do desenvolvimento web que é a trilha citada. Mas se sabe tudo isto como ainda tem dúvidas se o JBoss serve ou não servlets? É claro que o JBoss tem um servlet engine acoplado a ele que pode ser o Tomcat ou o Jetty.
Xinguem-me, surrem-me, joguem tomates, mas eu vou ter que discordar deste mantra de “aprenda a spec”. A questão é: você quer aprender a fazer ou aprender a usar?
Se você estiver interessado apenas em ganhar dinheiro facilmente, desenvolvendo as coisas bem rapidamente, sem se importar muito com arquiteturas belíssimas ou inovações (ou seja, quer aprender a usar), esqueça especificações, aprenda o mínimo necessário sobre JSP/Servlets e escolha logo um framework para ajudá-lo no dia-a-dia. Webwork, Struts, Spring, vRaptor, AppFuse, qualquer um! Use “receitinhas de bolo” e seja feliz. Você não vai se tornar um programador melhor, mas vai conseguir se virar e ganhar uns trocos.
Mas se você estiver mais interessado em saber como as coisas funcionam debaixo dos panos, então paciência: leia aquele montão de especificação (que são tão sonolentas quanto as teses do povo do ICMC) e siga os demais passos que o Luca falou.
Mas, de qualquer forma, treine bastante.