它与mod_perl有关。
我只在我的位置标记中指定了一个过滤器。
<Location /testproj/AServlet>
SetHandler modperl
PerlInputFilterHandler MyApache2::Test3
</Location>
在这里,当我在浏览器中点击http://localhost/testproj/AServlet网址时。它只是挂起。 Test3过滤器一次又一次地调用自己。我想只执行一次Test3过滤器并将控制传递给“AServlet”资源。
我该怎么办?
感谢。
答案 0 :(得分: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;