It is common to use extensions in URLs to indicate the type of document required. For example, URLs ending with "*.html" or "*.htm" usually return an HTML document. With Forrest the use of extensions is not necessary, we can use any pattern matching technique, for example, "html/foo" or "web/foo" could be used to return HTML pages.

Nevertheless, Forrest does use a few special URL extensions to indicate special types of request. These are used to retrieve documents from various stages of the processing pipeline and to retrieve debug information about the pipeline. These extensions are:

We need to make these extensions configurable. Perhaps from the forrestContext.xml file. This would mean the controller will need to be loaded via spring and Forrest core will require a bootstrap class to initialise everything. This would probably be a good idea as it will allow different controllers to be created should the need arise.