|
Daraja HTTP Framework 3.4.0-SNAPSHOT
HTTP server framework for Object Pascal
|
Context Handler for Web Components (and Web Filters). More...
Public Member Functions | |
| TdjWebComponentContextHandler (const string ContextPath, Boolean Sessions=False) | |
| Constructor. | |
| ~TdjWebComponentContextHandler () | |
| Destructor. | |
| TdjWebComponentHolder | Add (TdjWebComponentClass ComponentClass, const string UrlPattern) |
| Add a Web Component. | |
| TdjWebFilterHolder | Add (TdjWebFilterClass FilterClass, const string UrlPattern) |
| Add a Web Filter, specifying a WebFilter class. | |
| AddHandler (const IHandler Handler) | |
| Add a handler to the container. | |
| TdjWebComponentHolder | AddWebComponent (TdjWebComponentClass ComponentClass, const string UrlPattern) |
| Add a Web Component. | |
| TdjWebFilterHolder | AddWebFilter (TdjWebFilterClass FilterClass, const string UrlPattern) |
| Add a Web Filter, specifying a WebFilter class. | |
| IContext | GetCurrentContext () |
| The internal IContext field. | |
| RemoveHandler (const IHandler Handler) | |
| SetInitParameter (const string Key, const string Value) | |
| Set initialization parameter. | |
Public Attributes | |
| TStrings | ConnectorNames |
| string | ContextPath |
| IHandler | ErrorHandler |
| Optional handler invoked, in place of the framework's default generic 500 response, when a Web Component or Web Filter registered in this context raises an unhandled exception. | |
| IHandler | Handler |
Protected Member Functions | |
| Boolean | ContextMatches (const string ConnectorName, const string Target) |
| Check if the Document matches this context. | |
| DoHandle (const string Target, TdjServerContext Context, TdjRequest Request, TdjResponse Response) | |
| DoStart () | |
| Start the handler. | |
| DoStop () | |
| Stop the handler. | |
| TIdHTTPSession | GetSession (TdjServerContext Context, TdjRequest Request, TdjResponse Response, const Boolean Create) |
| Get a HTTP session. | |
| Handle (const string Target, TdjServerContext Context, TdjRequest Request, TdjResponse Response) | |
| SetStrictStart (const Boolean Value) | |
| string | ToConnectorName (TdjServerContext Context) |
| Creates connector name in the form 'host:port'. | |
Context Handler for Web Components (and Web Filters).
| TdjWebComponentContextHandler::TdjWebComponentContextHandler | ( | const string | ContextPath, |
| Boolean | Sessions = False ) |
| TdjWebComponentContextHandler::~TdjWebComponentContextHandler | ( | ) |
Destructor.
References Add().
| TdjWebComponentHolder TdjWebComponentContextHandler::Add | ( | TdjWebComponentClass | ComponentClass, |
| const string | UrlPattern ) |
Add a Web Component.
| ComponentClass | WebComponent class |
| UrlPattern | path specification |
| EDarajaMappingException | if the Web Component can not be added |
References TdjWebComponentContextHandler().
Referenced by TdjWebComponentContextHandler(), ~TdjWebComponentContextHandler(), and AddWebComponent().
| TdjWebFilterHolder TdjWebComponentContextHandler::Add | ( | TdjWebFilterClass | FilterClass, |
| const string | UrlPattern ) |
Add a Web Filter, specifying a WebFilter class.
| FilterClass | WebFilter class |
| UrlPattern | path specification |
| Exception | if the WebFilter can not be added |
References TdjWebComponentContextHandler().
|
inherited |
Add a handler to the container.
This implementation of AddHandler calls SetHandler with the passed handler. If this HandlerWrapper had a previous wrapped handler, then it is passed to a call to AddHandler on the passed handler.
| Handler | the handler to be added |
Referenced by TdjServer::Add(), TdjWebComponentContextHandler::AddWebFilter(), and GetSession().
| TdjWebComponentHolder TdjWebComponentContextHandler::AddWebComponent | ( | TdjWebComponentClass | ComponentClass, |
| const string | UrlPattern ) |
Add a Web Component.
Ownership: the returned holder belongs to the context. Use it only for further configuration (init parameters etc.); do not free it or keep it past the lifetime of the context.
| ComponentClass | WebComponent class |
| UrlPattern | path specification |
| EDarajaMappingException | if the Web Component can not be added |
References Add().
| TdjWebFilterHolder TdjWebComponentContextHandler::AddWebFilter | ( | TdjWebFilterClass | FilterClass, |
| const string | UrlPattern ) |
Add a Web Filter, specifying a WebFilter class.
Ownership: the returned holder belongs to the context. Use it only for further configuration; do not free it or keep it past the lifetime of the context. If the filter cannot be added the holder is freed before the exception propagates.
| FilterClass | WebFilter class |
| UrlPattern | path specification |
| Exception | if the WebFilter can not be added |
References TdjHandlerWrapper::AddHandler().
|
protectedinherited |
Check if the Document matches this context.
A named context matches both its bare path (no trailing slash, e.g. "/app" for a context registered as "app") and any path below it ("/app/...") – the same exact-match-or-prefix-plus-slash rule used by the Servlet spec for request path matching, and already mirrored by TdjPathMap for "/foo/*" patterns matching bare "/foo". See #544.
| ConnectorName | the connector name (like 'host:port' |
| Target | the target URL document |
|
protected |
| Target | Request target |
| Context | HTTP server context |
| Request | HTTP request |
| Response | HTTP response |
|
protectedinherited |
Start the handler.
|
protectedinherited |
Stop the handler.
|
protectedinherited |
Get a HTTP session.
References AddHandler(), and Handler.
|
protected |
|
inherited |
|
inherited |
Set initialization parameter.
| Key | init parameter name (case-sensitive) |
| Value | init parameter value |
| EDarajaConfigException | if the key is already set |
|
protected |
|
protectedinherited |
Creates connector name in the form 'host:port'.
|
inherited |
|
inherited |
|
inherited |
Optional handler invoked, in place of the framework's default generic 500 response, when a Web Component or Web Filter registered in this context raises an unhandled exception.
The handler receives the same (Target, Context, Request, Response) as any other IHandler; before it is called, Context (a TdjServerContext) carries LastErrorStatusCode/LastErrorExceptionClass/ LastErrorExceptionMessage describing the failure, so the handler can tailor its response. It is fully responsible for the response – Response.ResponseNo already defaults to 500, but the handler may change it.
If the handler itself raises, or none is set, the framework's default generic 500 response (introduced in #520/#523) is used instead.
|
inherited |
Referenced by DoStart(), and GetSession().