On this page the architecture and design of the JSPWiki is described. This page is thought of as a help for coming developers who need to figure out how to apply changes and where these should be applied.
NB: I changed this page to contain a high-level description of the JSPWiki 1.9.x and 2.0 design. --JanneJalkanen
Structure#
JSPWiki follows the basic Model-View-Controller paradigm:
- Model
- is handled by the WikiEngine class and any subsidiary classes. Via using different Manager objects, it handles page storage (see page providers), etc.
- View
- is handled via a number of JSP pages, that are stored in the templates/ directory. Normally JSPWiki uses the "default" template, but it is possible to change this via deployment-time configuration.
- Controller
- is handled via a number of custom JSP pages (Wiki.jsp, Edit.jsp, etc) that reside in the top-level directory. Unlike most application frameworks, JSPWiki uses JSP pages instead of servlets as the main entry point, for a couple of reasons:
- JSP pages allow quite a lot more flexibility: you can change the functionality, parameters, etc. of your JSPWiki installation very easily, without recompilation.
- JSP pages are servlets. So in effect we're running a servlet-based system.
Other stuff#
Other stuff TBA as I think of it. You can make note below if you want me to speak about certain aspects of the design.