2010-11-27 86 views
0

它与mod_perl有关。PerlInputFilterHandler一次又一次地调用自己

我只在我的位置标记中指定了一个过滤器。

<Location /testproj/AServlet> 
SetHandler modperl 
PerlInputFilterHandler MyApache2::Test3 
</Location> 

在这里,当我在浏览器中点击http://localhost/testproj/AServlet URL。它只是挂起。 Test3过滤器一次又一次地调用自己。我想只执行一次Test3过滤器并将控制权交给“AServlet”资源。

我该怎么办?

谢谢。

回答

1

这是因为你没有调用旅中的下一个过滤器。

package TestFilter; 

use base qw(Apache2::Filter); 
use Apache2::Const qw(OK); 
use APR::Const qw(SUCCESS); 

sub handler { 
    my ($f, $bb, $mode, $block, $readbytes) = @_; 
    my $rv = $f->next->get_brigade($bb, $mode, $block, $readbytes); 
    return $rv unless $rv == APR::Const::SUCCESS; 

    # do you filtering stuff 

    return OK; 
} 

1;
+0

谢谢杰里米。该代码工作良好,不会再次调用自身,但它不会传递控制到所请求的资源(“AServlet”)。它显示'页面无法显示',日志中没有错误。 – 2010-11-29 04:35:08

相关问题