POE::Component::Server::HTTPServer::Handler - request handler interface
package MyHandler;
use base 'POE::Component::Server::HTTPServer::Handler';
# import H_CONT and H_FINAL:
use POE::Component::Server::HTTPServer::Handler;
sub _init {
my $self = shift;
my @args = @_;
# ...
}
sub handle {
my $self = shift;
my $context = shift;
if ( $context->{use_myhandler} ) {
$context->{response}->code(200);
$context->{response}->content("Boo!");
return H_FINAL;
} else {
return H_CONT;
}
}
1;
This package defines the standard interface for request handlers. You can
subclass this package to define custom behavior.
- $self->handle( $context )
- HTTPServer invokes this method on the handler when it determines that the
handler should process the request. $context is
the request context, which is a hash reference containing data set by the
server and by previously executed handlers. Of particular note are the
attributes "$context->{request}" and
"$context->{response}". See
POE::Component::Server::HTTPServer for more details).
"handle()" should return one
of two values (defined in this package, and exported by default):
"H_FINAL" indicates that processing of
the request should stop, or "H_CONT"
which indicates that the HTTPServer should continue running
handlers.
A request handler will typically either set the headers and
content of the response object (and return
"H_FINAL"), or set attributes in the
context for later handlers to use (and return
"H_CONT"). A handler may also need to
tell the HTTPServer to restart the request dispatching process. The
idiom for this is:
return $context->{dispatcher}->dispatch( $context, "/new/path/to/dispatch/to" );
- $self->_init( @args )
- This method is called by the constructor with all the arguments passed to
"new()". If you need to handle arguments
passed to the constructor, prefer overriding this method to overriding
"new()".
POE::Component::Server::HTTPServer,
POE::Component::Server::HTTPServer::NotFoundHandler,
POE::Component::Server::HTTPServer::BasicAuthenHandler,
POE::Component::Server::HTTPServer::ParameterParseHandler,
POE::Component::Server::HTTPServer::StaticHandler
Greg Fast <gdf@speakeasy.net>
Copyright 2003 Greg Fast.
This library is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.