This tutorial covers JSF 1.x with Apache MyFaces, but the
the JSF 2.0 tutorial covers JSF 2 with the free Mojarra JSF2 implementation.
This JSF 1 tutorial
is left online only for those maintaining existing projects: JSF 2 is both simpler and more powerful than JSF 1, and is
strongly preferred for all new projects.
Click on a topic below to get the detailed tutorial,
download the source code, or try out exercises on the topic.

This section provides a quick review of the basics of servlets and JSP, as a review
before moving on to the JSF-specific topics.
Please note that this section is not detailed enough for those who have never done server-side
programming in Java; it is intended as a review for those who have done it before, but are rusty.
If you are new to building Web apps in Java, please see
the beginning and intermediate servlet and JSP tutorials.

jsf-blank-myfaces.zip
Blank Web app to use as a starting point for JSF applications.
Apache MyFaces version, bundled as
an Eclipse project.
Has all necessary JAR files in WEB-INF/lib,
all required settings in WEB-INF/web.xml, a
a blank WEB-INF/faces-config.xml file, and the JSF project facet for Eclipse.

Now that Facelets are well established, Tiles is considered obsolete by many JSF developers.
So, unless you have a specific reason to use Tiles, look at the previous section on Facelets instead of this section.

The PDF files in this tutorial contain the complete text of the original
PowerPoint files, so if your goal is learning this technology, just stick
with this tutorial. However, as a service to instructors teaching
full-semester courses at accredited universities, coreservlets.com
will release the original PowerPoint files for free. Please
see the instructor materials page
for details.

Looking for short hands-on training courses on Java 8, general Java programming, JSF 2.2, PrimeFaces,
Android development, or other Java-related topics
taught at your company? The courses are taught by Marty Hall,
an experienced instructor, developer, speaker, and well-known Java EE author, and the creator of this tutorial series.
For more information, see the JSF and PrimeFaces training course page, the Java training course page or
contact Marty to arrange a course
at your location. Courses are available in any country, and have been given in N. America,
Central America, Europe, Asia, and Australia. Distinctive features of Marty's training:

Experienced instructor who can answer tough questions and show best practices.

Marty & Java inventor James Gosling at
Marty's car.

With the big training vendors, you don't even know
the instructor's name before the class begins, much less their credentials.
Marty is an experienced real-world developer, award-winning
instructor, conference speaker on Java EE topics (including five
times at JavaOne and twice as keynote speaker at the Great Indian Developer Summit),
and author of six popular J2EE books
from Prentice Hall.
Core Servlets & JavaServer
Pages is the most popular servlet and JSP book internationally,
with translations in Bulgarian, Chinese (both traditional
and simplified script), Czech, French,
German, Hebrew, Japanese, Korean, Macedonian, Polish, Portuguese, Russian and Spanish.
Marty is also the co-author (with David Geary and Cay Horstmann) of the upcoming
JSF 2.2 edition of Core JSF, the leading JSF text worldwide.
Marty also teaches in the Johns Hopkins University part-time graduate program
in Computer Science, where he directs the Java and Web-related concentration area.
Click here for more details.

Flexible schedules. Courses are available in any city worldwide, and have been taught in dozens
of US venues and 9 other countries. However, Maryland-area companies have extra flexibility in the course schedules,
since Marty is local to Maryland. In addition to the full-day courses offered in all locations, Maryland companies can book the courses in the
late afternoons or early evenings. Even weekends are possible! For example, Marty has done about a dozen Maryland courses that met once or twice a
week from 4:30-6:30 pm (or similar) so that the students did not lose billable hours.

Course materials developed by the instructor.
Marty personally developed all of
his own materials, much of it based on his best-selling books. They thoroughly cover
the basics, introduce advanced topics, include many meaty code examples, and show plenty of
live running applications. They also discuss best practices, design strategies,
and efficiency issues. Most of the big
training vendors hire someone to create the course materials, then bring in some
inexperienced flunky to regurgitate them to the class.

Public (open-enrollment) training courses
Onsite courses are cheaper and more convenient for organizations that
have medium to large sized groups of developers. But, in order to serve
organizations with only one or two developers that need training, coreservlets.com
periodically offers public versions of some of the most popular courses.
The next public offerings will be on Java programming, new features in Java 8, Android programming,
Web application development with JSF2, PrimeFaces, Big-Data Apps with Hadoop, Rich Internet Applications with Ajax (and jQuery), GWT programming,
Hadoop, Java EE programming with Spring, Java persistence with Hibernate and JPA,
and Web Services (RESTful and SOAP-based).
The courses are co-sponsored by Johns Hopkins Engineering for Professionals
and are held at JHU/Dorsey in Elkridge Maryland (5 minutes from BWI airport).
Click here for details.

Java 7 and Java 8 Programming
We have both a general Java programming course (for those that know other languages but not Java,
usually aimed at those that will be doing enterprise or server-side Java apps), and a Java 8 mini course
(for those that know earlier Java versions but not the new Java 8 features).

In addition, Marty reviews/edits courses taught by colleagues. These courses are developed by experts who
work daily with the technologies, and the materials are thoroughly reviewed
by Marty. Course topics include:

Customizable content.
Want a class on JSF 2 or Spring or Hadoop, but need some
review of basic Java first? No problem. Want to move extra fast because your
developers are experienced? Piece of cake. Need to combine some
basic JSF topics with thorough coverage of PrimeFaces? Just say the word. Want an Ajax and jQuery
course, but first need a crash course on JavaScript syntax, first-class functions, and the DOM?
Simply let us know. Want training on GWT, but need a review of basic server-side Java techniques
first? Tell us what you need.
Every onsite course is fully customized to the needs and backgrounds of your developers.

Competitive prices.
Marty's public training courses
are typically at least 20% cheaper than the canned courses
from the big training vendors. And his courses include a textbook,
a bound student notebook, meals and snacks, exercises, and exercise solutions.
Onsite courses at your location are even cheaper, since there
are no venue rental costs. Plus, your developers don't have to pay travel costs
and the content and pace is customizable.