Java EE has progressed over the years from a Servlet-centric platform to one that provides a number of different options for building web and enterprise applications. In the early days of Java EE, in those days referred to as J2EE, one would focus on developing Servlets for building the frontend, as well as the integration and business layers. Things got a bit more dynamic when JavaServer Pages (JSP) came to fruition, as developers could begin to divide the workload between teams that would focus on the HTML markup and JSP tags to compose the frontend and those who would focus on the application logic. JavaServer Faces took it one step further by adhering to the Model-View-Controller pattern, whereby code logic was completely separated from page markup, creating three different tiers. This pattern makes development more logical and long-term maintenance much easier.