# Programming with Jetty Overview

> Traditionally Web sites have been constructed out of a large collection of authored HTML pages with dynamic content provided by CGI scripts or similar mechanisms. There are several key problems with this style of WWW site development: There is little scope to support look and feel or any other common elements between pages. Pages cannot be tailored to individual clients or the current server state. The authored pages represent a huge maintenance and configuration problem. There is a division between dynamic pages and static pages, making disjointed sites. Jetty is one of a new breed of WWW servers that are supporting the application of software engineering principles and techniques to the creation and maintenance of WWW sites and services. While creating a site or service using Jetty requires programming skills, this provides a number of significant advantages: A common infrastructure can be developed, in which less experienced developers or HTML authors can add content. Configuration control, release and test strategies can more easily be applied. Encoding of common elements allows significant re-use and enforces site/services conventions. Encoding of common elements allows changes that effect many pages to be made in only one spot. Object oriented techniques can be used for managing generic and specialized elements of a site/service. Jetty strongly supports this programmed style of site creation by using the rich and productive java environment and the standard javax.servlet API. Jetty further enhances this model with many mechanism such as server side include, filtering and forwarding that allow easy integration of dynamic content with authored content or content generated from other existing servers.