- dependency injection (you need this for unit tests) - easy to define request mappings makes creating a restful api possible in mins - custom jsp tags - jdbcTemplate - an enourmous library of useful functions (eg security, internationalization, device interceptor etc etc) Its sheer size can be offputting, and the config is somewhat confusing to begin with, and still cause sme problems now and again (after two years). And yes it conforms to model-view-controller, controllers are so much nicer to write than vanilla servlets (less verbose, more powerful).