Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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

closed as off-topic by gnat, MichaelT, Dan Pichelman, GlenH7, Bart van Ingen Schenau Jan 14 '15 at 14:43

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions seeking career or education advice are off topic on Programmers. They are only meaningful to the asker and do not generate lasting value for the broader programming community. Furthermore, in most cases, any answer is going to be a subjective opinion that may not take into account all the nuances of a (your) particular circumstance." – Community, Dan Pichelman, GlenH7, Bart van Ingen Schenau
If this question can be reworded to fit the rules in the help center, please edit the question.

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.

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.

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

share|improve this answer

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