RE:Ayuda con estos conceptos
Para recomendarte frameworks, depende mucho del gusto y experiencia de un programador. Yo te daré mi punto de vista.
Un framework como su nombre lo dice es un marco de trabajo, por lo general su objetivo es facilitar el trabajo que tiene un programador al programar, valga la redundancia, simplificar el código, y hacer que la programación sea más fácil, isn tanto código, en algunos casos añadiendo archivos xml para la configuración en lugar de clases con lineas y lineas de código.
Ahora, hay varios frameworks para Java, algunos son para mejorar la parte de código otros son sólo de persistencia (los de persistencia mejoran el trabajo con base de datos, te ahorran el crearte resultsets, etc)
Struts, Spring y JSF te permiten mejorar el trabajo de JSP al momento de invocar lógica del negocio porque te mapean los elementos o componentes de tu página web y ya tú trabajos con los datos.
Struts tiene dos versiones, la Struts1 que particularmente no te la recomiendo porque tiene algunos bugs y me parece que el trabajo es más largo que con Struts2, que sólo necesitas el Struts.xml(archivo de configuración) e implementar las librerías. Además tiene varios plugins, como JQuery, Json y fácil implementación de AJAX que da efectos más dinámicos y atractivos para el cliente aunque también demandan recursos. Pero Struts en buen framework.
Hibernate es para persistencia, es decir facilita lo que es la parte de acceso a datos sólo necesitas las librerías y las anotaciones necesarias por ello es muy fácil de usar. Particularmente, yo prefiero usar JPA que es una implementación de HIBERNATE que también es un buen framework.
Si encuentras Ibatis no te lo recomiendo porque demanda mucho uso de archivos xml y también tiene sus bugs.
Spring es un buen framework, tiene la misma funcionalidad que Struts2, sólo que trabaja con anotaciones. Yo prefiero Spring, pero aún más que nada JSF porque te permite implementar muchas más funcionalidades. Como te digo, todo depende del gusto del programador y qué se le haga más fácil.
Enterprise Java Beans 3 tiene muchas mejoras y te permite configurar muchas funcionalidades para facilitar la programación. Sin embargo, un framework es mucho más efectivo.
Para comenzar, te recomiendo Struts2, luego JSF o Spring
Para lo de persistencia, Hibernate y luego JPA, ambos son muy similares.
Espero haberte ayudado. Saludos