struts/spring/hibernate是用来支持J2EE开发的框架。
J2EE中有jsp和servlet,如果你的开发模式比较好,可能会使用MVC模式来使用jsp和servlet。而struts正是为了方便MVC模式开发的,它就是一个MVC的实现框架。
J2EE的后台服务有EJB,不过它存在不少问题,重量级的、开发复杂的等等。所以有轻量级的Spring可以在很多方面取代它。
J2EE的数据持久可以用JDBC API,不过它不是面向对象的、并且工作量巨大、操作不方便。Hibernate正是用来解决这些问题的一个持久化工具(框架)。
struts/spring/hibernate就占据了显示层、服务层和持久层三个层次。
而把以上三者结合使用,是目前比较流行的模式,也是比较方便和高效的。
从这些出发,还有很多其他框架也可以来完成这些任务,比如显示层还可以用jsf/tapestry等框架,各有优劣,这就需要你在实际工作中,根据项目侧重点去选择了。