| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188 |
- This is the beginning of a server side web system for FPC.
- Although it is non-visual, it is geared towards use in Lazarus.
- Architecture:
- htmldefs
- --------
- (in ../inc) contains basic HTML declarations.
- httpdefs
- --------
- contains the basic HTTP system definitions:
- header field names
- TCookie(s):
- collection with cookies in web request
- TUploadedFile(s):
- collection with uploaded files in request
- THTTPHeader:
- Class describes HTTP Request/Response headers.
- it has properties for all possible HTTP headers, including cookies
- TRequest:
- Descendent of THTTPHeader, describes client request.
- Contains uploaded files.
- TResponse:
- describes the web server response. Includes headers and contents.
- TCustomSession:
- Base for all session components.
- fphttp:
- -------
- Basic web system components/classes
- TCustomHTTPModule:
- Abstract TDataModule descendant, which processes a webrequest
- and prepares a response.
- TModuleFactory/TModuleItem:
- Module registration and creation system.
- TCustomWebAction(s):
- Webactions.
- RegisterHTTPModule():
- routine registers a module with the web system.
- THTTPContentProducer :
- abstract HTTP producer component.
- The idea is that the URL relative to the server is taken and parsed as
- follows
- http://www.server.org/Path1/Path2
- Path1 determines which module in the system is created to handle the
- request. (the factory is queried)
- Path2 determines which web action inside the module is used to handle the
- request. (implemented in TWebModule, see fpweb)
- websession
- ----------
- Implements basic session support.
- TSessionHTTPModule:
- TCustomHTTPModule descendent with session support.
- TIniWebSession:
- TCustomSession descendent which stores session variables in inifiles.
- TFPWebSession:
- TIniWebSession descendent for use in fpweb. Uses cookies to store session info.
- GetDefaultSession() :
- returns default session object.
- fptemplate
- ----------
- Unit which implements template support.
- TTemplateParser:
- Template parse object. Does the actual parsing and replacing. Delimiters
- are configurable. Standard variables can be specified, callbacks for unknown
- values can be set.
- TFPCustomTemplate:
- TPersistent for use in components. Allows properties to configure the
- TTemplateParser. Supports streams, template and template files.
- fpweb
- -----
- Actual usable implementation of TCustomHTTPModule.
- TFPWebAction(s):
- Web actions with template support.
- TCustomFPWebModule:
- Descends from TSessionHTTPModule, implements WebActions and has template support.
- TFPWebModule:
- published TCustomFPWebModule properties for use in Lazarus.
- fphtml
- ------
- This creates web modules specialized in creating HTML content.
- THTMLContentProducer:
- Descendent of THTTPContentProducer which produces HTML
- THTMLCustomDatasetContentProducer:
- Descendent of THTTPContentProducer which produces HTML from datasets.
- THTMLDatasetContentProducer:
- Descendent of THTMLCustomDatasetContentProducer which publishes some
- properties.
- THTMLSelectProducer:
- Produces a combo box.
- THTMLDatasetSelectProducer
- Produces a combo box bases on values in a dataset.
- TCustomHTMLModule:
- TCustomHTTPModule descendent which produces HTML content only.
- htmlelements
- ------------
- Implements a DOM for HTML content. Contains a TDOMElement descendent for
- all valid HTML 4.1 tags.
- THtmlCustomElement:
- Basis for all HTML tag elements.
- THTMLDocument:
- TDOMDocument descendent
- THTMLIDElement:
- element representing <ID> tag
- All tags are in tagsintf.inc.
- htmlwriter
- ----------
- Implements a verified HTML producer.
- THTMLwriter:
- This is a class which allows to write certified correct HTML.
- It works using the DOM for HTML.
- It also has forms support.
- Writing HTML is done as follows:
- StartBold;
- Write('This text is bold');
- EndBold;
- or
- Bold('This text is bold');
- But the following is also possible
- Bold(Center('Bold centered text'));
- Open tags will be closed automatically.
- wtagsintf.inc contains all possible tags.
- fpdatasetform
- -------------
- This contains classes which allow to create complicated HTML/forms
- based on a TDataset.
- THTMLDatasetFormProducer
- Creates an edit form for a TDataset record.
- Complicated table layouts are possible.
- THTMLDatasetFormGridProducer
- Creates a grid with data from a TDataset
- Complicated table formatting is possible.
- custcgi:
- --------
- CGI application base class. It knows nothing of the fp
- HTTP module system.
- TCustomCGIApplication :
- TCustomApplication descendent which handles a CGI request.
- No instance of this class is created, this is done in fpcgi.
- TCGIRequest:
- TRequest descendent which retrieves content from the CGI
- environment.
- TCGIResponse:
- TResponse descendent which returns content to the CGI environment.
- fpcgi:
- ------
- Standard CGI application instance.
- TCGIApplication:
- TCustomCGIApplication descendent which uses the fpWeb system
- to create a TCustomHTTPModuleClass to handle the request.
- It contains an Application instance which handles everything.
|