I'm an experienced POJO programmer but recently have a requirement to build an Internet based Web application. I really haven't paid attention to all the Java based web technologies that have flowered in the last ten years. Now I'm playing catch up and I'm pretty confused! I want to develop an Internet application with the usual mix of requirements: web front-end, database backend, competent security, etc and don't want to suffer rework from picking the wrong stack. The trick is I'm not really in a competent position to judge what's important. I don't want to invest myself in orphaned or legacy technology, and want to be able to purchase a reasonable hosting service at some point.
So, is Java EE (eg GlassFish) the way to go, or is the Tomcat/Hibernate/... stack still the main game for Internet applications?
Should I commit to JSF development or is JSP still the mainstream choice de jour?
Hosting providers: there appears to be emerging support for Java EE hosting providers but they seem more expensive than Tomcat++ providers? Or have I got this wrong?
CDI is kicked around as a big issue, but I'm not sure how to think about it in terms of my requirements. I guess it's probably a distraction.
I've got to say: starting web-based Java development is a pretty humbling experience given my competence in "ordinary" Java development (aka POJO and Swing): I certainly feel I'm not in Kansas anymore...