Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I know basic stuff like, what are beans, jsp, servlet, jsf and how this stuff should work together. I know how to make basic jsp page with database query for example. Now I need to know what is the best path to learn all this stuff.

My plan is to learn in this order:

  1. jsp (including persistance and JSTL)
  2. servlets + beans
  3. jsf
  4. The jump to frameworks (hibernate, struts, spring, etc)

Also I'm not exactly sure about JSF, is it a must to make great pages or is it just a convenience to know?

share|improve this question

2 Answers 2

up vote 2 down vote accepted

That order sounds about right. It's important that you get an understanding first and foremost jsp, and get a fundamental understanding about which parts are clientside and which parts are serverside.

Servlets and beans should naturally come afterwards, extending the usage of jsp to Java classes. From there, of course you know the basics and can proceed with other frameworks.

Jsf is the only thing which is a little bit at odds with the others. I think it's a valuable instrument, and I prefer it over jsp whenever possible because it makes my life easier, but it helps to know jsp as well. If you want to learn it, then you've already placed it in its proper order. Once you know how servlets and beans work, you can make better usage of them in jsf.

And if I may recommend a framework, Seam tends to fill the holes of a lot of issues related to jsf and hibernate, etc. and extends what you're capable of doing in jsf (allows you to pass parameters for example).

share|improve this answer
I believe JSF 2.0 has a lot less issues than earlier versions. Have you worked with this version yet? –  user1249 Feb 7 '11 at 16:39
Yes I have. Definitely an improvement, though I've noticed there are still plenty of peculiarities if you attempt to nest controls from different namespaces unfortunately. –  Neil Feb 25 '11 at 11:50

I think you have the order right. Since you know basic JSP & queries, I'll suggest you to start with Struts. Write some simple & complex apps (JSP + JDBC) yourself. It'll give you basic idea about MVC, J2EE.

About the frameworks: There is a lot of stuff to learn on the server side. Struts is just a start. After Struts, I'll recommend you learn Spring. Spring will cover J2EE programming with POJOs, with EJBs, JDBC, MDBs, Transactions, etc and how to wire all of them. Again, don't just read; write sample applications & follow the tutorials. http://www.springsource.org/documentation

Learn Hibernate when you get to the data layer. Also, learn how to develop Hibernate apps with Spring.

Next topic you should be familiar is application servers. Learn how to develop applications using J2EE technologies for JBoss, Websphere, Tomcat with or without Spring. http://www.jboss.org/

That pretty much covers majority of Java EE learning. All the best!

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.