I want to learn web development with java and i was confused by what's difference between JSP, servlet, JSF, facelet ?? are all the same in web development or the servlets & facelets are part of jsp & jsf , and should i learn only one of them or what ?? and what are the pros and cons of each one of them