Dúvida, Servlet, EJB, JSF, JPA, PrimeFaces

Boa noite, estou com várias dúvidas quanto aos temas do tópico. Não estou conseguindo entender onde começa um e outro o outro termina.

O Servlet que cuida das requisições web? O EJB roda dentro do servlet? O JPA é uma api que cuida da persistência de dados com o banco de dados? E o primefaces? seria um bootstrap do Java?

  • Servlet = ponto de entrada para requisições HTTP. O servidor converte uma stream de bytes (a requisição) para um objeto e te entrega, através do Servlet, esse objeto e outro que é onde você vai escrever a resposta. No final, ele pega a resposta e converte em stream de bytes;
  • JPA = mapeador objeto/relacional, facilita a comunicação com banco de dados;
  • JSF = templating language para montar páginas HTML;
  • PrimeFaces = tema + funcionalidades extras para JSF;
  • EJB = o container de aplicação (o programa que executa o seu programa) gerencia o ciclo de vida de objetos (criação/destruição/reuso) para você.

Pesquise pelos termos em negrito (de preferência em inglês) para descobrir mais!

Valeu cara, clareou bastante, mais uma dúvida o Hibernate entra no lugar do JPA?

JPA é uma especificação. Hibernate é uma de suas implementações disponíveis no mercado. JPA não existe de forma concreta, é só uma espécie de contrato que o Hibernate (e os outros providers) segue.

Obrigado!