wwServer::Process
about 1 minute to read

The Process method is the main routing routine for incoming Web Connection requests. This method parses the base parameters/filenames and decides which Process class to call for request processing.

This method must be implemented by wwServer subclasses as the base method is generic. This method is generated by default and includes place holders to add additional process class handlers.

The bulk of an implementation typically contains a CASE statement that routes each script map or positional parameter to the appropriate process class.

Here's what a typical Process method looks like:

foxpro
PROTECTED FUNCTION Process LOCAL lcParameter, lcExtension, lcPhysicalPath *** Retrieve first parameter lcParameter=UPPER(THIS.oRequest.Querystring(1)) *** Set up project types and call external processing programs: DO CASE *** Legacy handling of wwMaint requests CASE lcParameter == "WWMAINT" DO wwMaint with THIS OTHERWISE *** Check for Script Mapped files for: .WC, .WCS, .FXP lcPhysicalPath=THIS.oRequest.GetPhysicalPath() lcExtension = Upper(JustExt(lcPhysicalPath)) DO CASE *** Stock Extensions CASE lcExtension = "WC" OR lcExtension == "FXP" OR lcExtension == "MD" DO wwScriptMaps with THIS *** Route to your Process class CASE lcExtension = "WD" DO WebDemo with THIS OTHERWISE this.ErrorMsg("Unhandled Request",; "The server is not set up to handle the following extension: <b>." + lcExtension + "</b>") ENDCASE ENDCASE RETURN

Note there are two nested CASE statements. The first checks for 'ordered' parameter which is the legacy style using urls like wwMaint~ClearErrorLog~100. The second block checks for script mapped extensions which is the most common ways requests are routed - including if set up extensionless Urls. Each CASE looks for a specific extension and maps it to and runs the appropriate Process class passing in the server object as a parameter which is how your custom Process class gets fired. The process class itself then has a way to route the script name preceeding the scriptmap to find the method or script to execute.

o.Process()

Return Value

nothing

Parameters

none

Remarks

This method should always be overridden.


See also:

Class wwServer | wwServer::ProcessHit | wwProcess::Process

© West Wind Technologies, 1996-2024 • Updated: 03/18/20
Comment or report problem with topic