A PC or workstation, with a connection to the Internet so you can download the software you need
A Java 2-compatible Java Software Development Kit (Java 2 SDK)
A JSP 2.0-enabled web server, such as Apache Tomcat 5 from the Jakarta Project
A JSF 1.0 implementation, such as Sun’s Reference Implementation
All the examples in the book were tested on Tomcat 5 with the JSF Reference Implementation, but they should work with any JSP 2.0-compliant web container and JSF implementation. In Chapter 4, I’ll show you how to download, install, and configure the Tomcat server to run the examples.
In addition, there are a variety of other tools and servers that support JSF, from open source projects and commercial companies. IBM, Oracle, and Sun are some of the companies that have announced plans for JSF development tools, and many others are expected to follow. Two sites to keep an eye on for what’s available are http://java.sun.com/j2ee/javaserverfaces/(Sun’s JSF site) and http://www.jamesholmes.com/JavaServerFaces/ (an independent JSF resources site run by James Holmes). You may want to evaluate some of these tools when you’re ready to start developing your application, but all you really need to work with the examples in this book is a regular text editor, such as Notepad, vi, or Emacs, and of course the Tomcat server.
Let’s take a closer look at what JSF has to offer. The next chapter starts with an overview of what it takes to use JSF in an application.
 The JSF 1.0 specification depends on the Servlet 2.3 and JSP 1.2 specification, but I take advantage of the many enhancements made in JSP 2.0 for the examples in this book.