Im really confused about which Java based web framework to use to start my first site. My site intentionally will be part blog, part static pages, a kind of homage to technology and various day to day learnings.
I dont want to use a blog plugin but would like to create a blog from scratch, so I thought about SpringRoo, or Grails, but I have spoken to two people at work about using these technologies and both have suggested its not a good idea for various reasons.
I am keen to learn about Spring and IoC because it seems very much coupled with Java and a sensible choice. This leaves me to perhaps use Spring MVC with Web Flow, but its something I know little about.
Another idea was DropWizard, as these days Im reading there is a move away from server side MVC architecture to a more thick client based framework, but I havent read much into DropWizard just yet, so Im wondering is there any longevity in its lifecycle, or will it just be another passing fad.
The way I imagine my site, is a blog driven my a mongodb database, as I have just completed a course on mongodb and like to try to use this.
Ive also taken a look at the Play! framework, which also seems appealing, but as I say, I would like to get some exposure to technologies like Spring, because these seem to be incredibly in demand in the working sector, so knowing something of a technology in its working domain, has value over a lesser known technology which isnt really implemented in many small or medium sized enterprises.
I just passed the SCJP and really want to focus on extending my Java knowledge now, particularly around design patterns, testing frameworks, etc etc
So its an open question Im asking, can anyone suggest some ideas of solutions of how I can start my small project, also perhaps mention some pros and cons?
For your first site I'd recommend to use no framework at all, especially if it's for a small project. Learn how servlets and JSPs together can implement the MVC pattern, and then later you can use a framework that simplifies some of the repetitive stuff you would encounter in a larger project.
Ulf is right, frameworks and IDEs hide important stuff from you and interfere with learning.
A working server on your own computer is the best learning tool. Download Tomcat and install it as an application NOT as a service. Tomcat comes with loads of examples for JSP and servlets. Fiddle with those examples to learn what is going on. It is a big jump from single user desktop applications to multiuser web servers - best take it a step at a time.
Personally I use ANT to control builds. I also like to have the servlet API JavaDocs as local files for ready reference.
But is there any merit in these technologies, JSP and JSF, I seem to get an impression from the Java community that in terms of appreciation in the real world business case, they wouldnt be the choice of many architects and technologists. Maybe I am wrong...?
Yes, I think you have a wrong impression. JSP is a very widely used framework for the view layer, likely more widely than any other. JSF is indeed loved a lot less than JSP, it is not often the first choice.
And when my army is complete, I will rule the world! But, for now, I'm going to be happy with this tiny ad: