The Joist Framework
Basic Processing Flow
In a nutshell, a client request is routed to a servlet, which does some security checking, then performs the requested action. The servlet determines what will be displayed as a result of the request, then hands off to the WebMacro template engine to render the HTML, which is returned to the client.
Clearly this is glossing over a lot of details.
As a request comes in from an HTTP client, it is routed by the web server to the servlet engine. The servlet engine determines which servlet to run and invokes its doGet() or doPost() method. All this is standard stuff handled by Apache and JServ. The WMServlet handles the doGet() and doPost() in a uniform manner. WMServlet expects its subclasses to implement the handle() method.
The servlet request may specify an action, either as the result of the user pushing a button on a form, or via the URL query string. UnsecureServlet looks for the value of
Button, and saves it in the WebContext as the
action. The application servlet processes the requested action if it can; otherwise, the user is redirected to the UnauthorizedAccess page.