i am sun certified web component developer and i am very comfortable in developing web applications using servlet and jsp custom tags. now i want to learn framework which is used for developing web applications, but there are spring,jsf, struts etc ,among these and other frameworks which framework will be more suitable for me for developing web applications as i am sun certified web component developer? and i dont have any idea about EJBs.
As far as i know Freddy Wong is right.
Everything has it own importance
For eg : Struts is useful in handling larger web-applications..
It also separates the business logic from view(the html part)
Now here we can apply Spring framework for bussiness logic and JSP/JSF/Velocity for View part.
I was also very confused with so many Java frameworks available. But the more you hear about frameworks, you have more confusion. If you are student and you have free time for testing and experiment, try to run some simple hello world app in each framework. To Java frameworks with similar functionality, some are popular than others [popular means the framework have many users]. Using popular frameworks, you have greater chance to receive supports from frameworks communities and may be easy to find a job with skills you gain during using frameworks.
From my experience, those following are popular:
- For bean management: Spring, de-factor standard
- For ORM: Hibernate
- For MVC: Webwork+Velocity (now Strut2), SpringMVC. I think webwork+velocity is the best combination. It is so simple to have a view with Velocity template.
For modular design: It is very important for you as a architect from the beginning seriously think of modular design. It helps to reduce complexity of your application, leverage concurrent development.
- maven module: maven also supports modular design but I feel this is so complex.
- osgi approach: according to what documented in osgi website and forum, I think this is worth a try. Publishing a module in osgi is no more than just registering an osgi service.