Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Contact Us
Online Help
Domain Status
Man Pages

Virtual Servers

Topology Map

Server Agreement
Year 2038

USA Flag



Man Pages

Manual Reference Pages  -  JIFTY::MANUAL::REQUESTHANDLING (3)

.ds Aq ’


Jifty::Manual::RequestHandling - Jifty’s request handling process



This document outlines some of Jifty’s inside in order to help you to understand what happens during the request processing phase.


As soon as a HTTP request (whatever the method might be, like GET, POST, PUT, ...) arrives at Jifty’s border, the request is forwarded to a handler. By default, Jifty->handler points to a Jifty::Handler object that is responsible for handling an incoming request. The handler receives a CGI object on which it operates.

    The major steps in the request handling process are:

refresh eventually modified modules in develop mode This allows a perl developer to change perl modules being used in a Jifty application without the need to restart the server which would otherwise become necessary. This is never done on a live environment.
build a stash The stash is a storage area that can be reached by simply accessing Jifty->handler->stash->{some_key}. The stash will start fresh with every request and lives for the entire lifetime of a request. Using the stash, transporting data between otherwise unconnected modules will become possible.
construct a request and response object Using the CGI object, a Jifty::Request object is constructed and its data is populated with the CGI object’s data. The request can be reached later using Jifty->web->request. The request holds information about all actions involved, all page fragments, contains state variables and arguments (usually GET/POST parameters).

Also, an empty Jifty::Response object is constructed that contains one or more Jifty::Result objects, each of which holds one Jifty::Action’s result. The response object can be retrieved with the Jifty->web->response method.

setup plugins For every registered Jifty::Plugin, some kind of per-request initialization is performed allowing the actions provided by each plugin to run.
handle static content If the requested URI points to some existing static content being housed in a static directory, this content is handled.
setup the session Based on a cookie that is sent with every HTTP response, the current user is assigned a unique session. The session is stored in a Jifty::Web::Session object and can be accessed using the Jifty->web->session method.
return from a continuation if requested If there is an open continuation on the stack (e.g. from a Jifty->web->tangent link) and the return has been requested (e.g. by a Jifty->web->return link), the return will execute at this stage.
handle dynamic request unless already served First, the user is given a cookie containing the session-id. Then, the request is forwarded to Jifty->handler->dispatcher, a Jifty::Dispatcher object to handle the request. The dispatcher works through the following steps:
setup In this stage, all rules in the dispatcher that are marked with the word before are run.
run the actions involved Every Jifty::Action that is registered in a form or involved in a link or button is run in this stage.
run dispatching rules This stage is responsible for working through all rules marked by words like under, on, when and so on. This is a point where based on the URI or parameters the template to get displayed may still be modified, data get retrieved, additional actions run or the template’s parameters get adjusted.
show the page Here, the template displaying the page is run.
cleanup This final stage of the dispatcher will run all rules marked with the word after.
cleanup several things Finally, the eventually modified session-record is flushed and some internally allocated structures get deallocated.


Jifty::Handler, Jifty::Dispatcher, Jifty::Request, Jifty::Response
Search for    or go to Top of page |  Section 3 |  Main Index

perl v5.20.3 JIFTY::MANUAL::REQUESTHANDLING (3) 2010-12-08

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.