Dúvida quanto ao Struts e outros

Estou começando no desenvolvimento web com java e esse é meu primeiro post nesta sessão. Estou saindo do SE e entrando de cabeça no EE e suas variantes. Tenho muitas dúvidas e por isso pretendo comprar uns livros que me possa auxiliar nesse caminho. Tenho noção de como funciona um EJB, mas não consigo clarear em minha mente a relação que existe entre os vários Framework do java. Então, vamos lá: Para um projeto de um sistema WEB usando java, onde eu tenho os sguintes Framework / Componente:

EJB
STRUTS
JSP
JPA,HIBERNATE(Acho que é um ou outro)
ECLIPSE
TOMCAT

Como eu dividiria o meu projeto de forma a usar todos esses caras no mesmo projeto(se possível)? É uma dica de como trabalhar, e o que cada um faz e como colocá-los em seus respectivos lugares. Claro, que Eclipse e Tomcat, sei exatamente dos seus papéis, mas coloquei apenas paraincluir todos. Não sei se conseguir esclarecer. Desde já, grato!

jpa é uma especificação que utiliza uma implementação, no caso, pode ser o hibernate, um framework de ORM, com ele vc pensa na persistencia de forma mais orientada a objetos.

para ejb aconselho vc ler o ejb em açao, muito bom.

mas o certo mesmo é começar com o basico, servlets e jsp, depois aprender um framework mvc, baixe a apostila da caelum fj-21. la vai te dar uma base, ai conforme for surgindo a necessidade vc estuda outros frameworks, o ideal seria ao meu ver, estudar isoladamente, depois juntar td.

abrassssssssss

Ai brother, segue abaixo uma breve explicação…

STRUTS = Struts é um framework (no caso: conjunto de classes usado para resolver um determinado problema) que implementa o Design Pattern MVC, onde M=Modelo (Regras negociais), V = View (Suas JSPs) e C = Controller (responsável por receber e repassar as solicitações dos usuários).
Ele é usado geralmente quando se deseja padronizar determinadas aplicações e resolver determinados problemas (para não reiventar a roda, pois alguém já resolveu, documentou e implementou um solução “O Struts”).

JSP = São apenas utilizadas para apresentação, ou seja, mostrar na tela ou pegar da tela dados que o usuário digita

JPA = É a especificação

HIBERNATE = É a implementação do JPA, seria um framework muito bacana responsável pela parte de persistencia de seus dados.

ECLIPSE = Você já sabe…

TOMCAT = Voce já sabe…

EJB = Esse você já sabe tb…hehehee

espero ter ajudado, qualquer coisa, só avisar

Duas dicas de frameworks então!

Mais complexo, completo e seguidor/definidor de padrões J2EE: Jboss Seam.
Mais simples, prático e fácil: VRaptor.

Eu já programei em Struts, sei que o mercado tem muitas oportunidades com ele, porém se quiser começar no que no meu ponto de vista vale a pena estude o JBoss Seam.

Primeiramente, obrigado por todos. A forma que eu encontrei em aprender é fazendo uma aplicação. Eu tenho uma aplicação em Delphi e agora estou passando-a para java. Essa é uma aplicação pesada, mas vou aprendendo assim. To gostando bastante. Em delphi distribuir a aplicação em camadas é um pouco diferente do que em java, apesar do resultado final ser conveniente, por isso irão aparecer muitas dúvidas, mas lendo e fazendo e se necessário refazer, conseguiremos chegar lá. Obrigado a todos!!!