I have a lot of common areas in my web application design, for example footer, header sidebar, blocks...etc and going through all of the application JSP files to change somethin
I have used Apache Tiles. It can be very easily integrated with Spring MVC. You can also consider using sitemesh. As you mentioned header template, footer template you can have base template for header, footer, menu and you can integrate them into base template,
Note : You can only have jsp and not html here.
Check this link for spring with tiles.
http://www.springbyexample.org/examples/dynamic-tiles-spring-mvc-module.html