POE::Component::Server::HTTPServer::NotFoundHandler - Generate 404 Responses


POE-Component-Server-HTTPServer documentation Contained in the POE-Component-Server-HTTPServer distribution.

Index


Code Index:

NAME

Top

POE::Component::Server::HTTPServer::NotFoundHandler - Generate 404 Responses

SYNOPSIS

Top

    use POE::Component::Server::HTTPServer;

    my $server = POE::Component::Server::HTTPServer->new();
    $server->handlers( [
        '/reallyprivate' => new_handler( 'NotFoundHandler' ),
    ] );

DESCRIPTION

Top

NotFoundHandler generates and returns 404 Not Found responses. This handler is, by default, set as the backstop handler that HTTPServer will invoke on a request if none of the other handlers have returned H_FINAL.

If the error_message context attribute is defined, it will be included in the content of the reponse (use with caution).

NotFoundHandler is implemented as a singleton.

SEE ALSO

Top

POE::Component::Server::HTTPServer

AUTHOR

Top

Greg Fast <gdf@speakeasy.net>

COPYRIGHT

Top


POE-Component-Server-HTTPServer documentation Contained in the POE-Component-Server-HTTPServer distribution.

package POE::Component::Server::HTTPServer::NotFoundHandler;
use strict;
use HTTP::Status;
use POE::Component::Server::HTTPServer::Handler qw( H_CONT H_FINAL );
use base 'POE::Component::Server::HTTPServer::Handler';

our $Instance;

sub new {
  my $class = shift;
  $Instance = bless {}, $class
    unless defined($Instance);
  return $Instance;
}

sub handle {
  my $self = shift;
  my $context = shift;
  $context->{response}->code( RC_NOT_FOUND );
  my $message = "";
  if ( defined($context->{error_message}) ) {
    $message = ":<BR>$context->{error_message}\n";
  }
  $context->{response}->content("<HTML><BODY>Not Found$message</BODY></HTML>");
  return H_FINAL;
}

1;
__END__