I’m a .NET programmer who is soon moving to the Java EE world. I have plenty of experience with .NET web technologies, web services, WebForms and MVC. I am also very familiar with the Java language, and have written a few servlets and modified a couple of JSP pages, but I haven’t touched EE yet.
I’d like to set up a public website using Java EE so I can familiarize myself with whats current. I’m thinking just a technology playground at this point with no particular purpose in mind. What Java technologies are the current hotness for this sort of thing? (For example, if someone asked me what I’d recommend learning to set up a new .NET site, I’d say use ASP MVC instead of WebForms and recommend LINQ-to-SQL as a quick, simple and widely used ORM.)
So, what I’d like to know is:
- Is there a recommended technology for the presentation layer? Is JSP considered a good approach, or is there anything cleaner/newer/more widespread?
- Is Hibernate still widely used for persistence? Is it obsolete? Is there anything better out there? (I’ve worked with NHibernate some, so I wouldn’t be starting from scratch.)
- Is cheap Java EE web hosting available?
- What should I know being a .NET web developer moving to the Java world?
JSP has been replaced by Facelets. It provides an excellent templating fit for JSF, Sun’s MVC framework (the Java counterpart of ASP.NET MVC). If you don’t go for JSF, then Facelets has not much benefit for you and you could just continue with legacy JSP, probably with a 3rd party templating framework on top like Freemarker or Velocity and/or a 3rd party MVC framework like Spring MVC, Struts2 or Stripes. I however strongly recommend to just go ahead with Facelets+JSF on Java EE 6.
It’s certainly not obsolete. It has just expanded its powers with a JPA implementation. Even more, the guy behind (N)Hibernate, Gavin King, has worked on the Java EE’s JPA specification himself.
Only eatj.com, javaservlethosting.com and Google Appengine comes to mind.
Maybe any of those answers will be helpful: