I wouldn't go for Struts these days.. If you're already considering Spring you should also take a look at Spring MVC, especially the newer Annotation-based Controllers are really nice to work with.
I would suggest learning Spring before Hibernate because it is much easier to learn if you stick to the core and maybe WebMVC, which is what I would recommend. Spring grew quite a bit in the last releases but the core is still simple and easy to understand.
Hibernate is a lot more complicated. I would recommending understanding the general purpose of an ORM like Hibernate, learn the hibernate annotations way of configuring hibernate and then go straight for the Spring/Hibernate Integration because it makes many things much easier. If your domain has more than just a few base types, you could also take a look at the GenericDAO pattern