For the front-end I'd pick AngularJS personally. I used Backbone.js for a couple of years so I know what that world is like. Ember.js might be a good choice as well but it seems like AngularJS is going to swamp it due to popularity.
I wouldn't generate any pages in the back-end at all (the exception being a couple of one-off servlets if I have binary files or other things to download which are more easily generated in the back-end). All pages would be static HTML, CSS, and JavaScript and rendering would all happen on the front-end.
It's easy to work on, it's easy to figure out where bugs are (just look at the JSON flowing back and forth), and if you focus 100% of your security on that API and making sure that you never send anything you shouldn't to the front-end and that you validate everything the front-end sends to the back to the n-th degree, you'll never have security woes.