过滤器未按预期工作
这是关于 mod_perl2 过滤器的。
理想情况下,过滤器的工作是对输入数据和数据执行某些操作。将数据传递到下一个过滤器或实际请求的资源。
就我而言,我为 URL 模式定义了一个 PerlInputFilterHandler。请参阅下面的位置标签:
<Location /testproj/AServlet>
SetHandler modperl
PerlInputFilterHandler MyApache2::Test10
</Location>
此过滤器(Test10)应该更改请求数据和请求数据。将控制权传递给 AServlet(部署在 WebLogic Server 上的 servlet)。
然而,这个过滤器被调用,但它没有将控制传递给 AServlet - 无论我在过滤器中写什么。为什么会这样呢?
谢谢。
It's about mod_perl2 filter.
Ideally a job of filter is to do something with input data & pass on the data to next filter or actual requested resource.
In my case, I've a PerlInputFilterHandler defined for a URL pattern. See below location tag:
<Location /testproj/AServlet>
SetHandler modperl
PerlInputFilterHandler MyApache2::Test10
</Location>
This filter (Test10) is supposed to change request data & pass on control to AServlet (a servlet deployed on WebLogic Server).
However, this filter is getting invoked but it's not passing control to AServlet - no matter what I write in filter. Why so?
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
尝试删除
SetHandler
行。它告诉 Apache 请求的内容阶段应该由 mod_perl 处理,但听起来您希望在其他地方处理内容阶段。即使主要内容处理程序不是
modperl
,PerlInputFilterHandler 指令仍应生效。如果内容处理程序由 mod_perl 完成,您还应该设置一个
PerlResponseHandler
Try removing the
SetHandler
line. It tells Apache that the content phase of the request should be handled by mod_perl, but it sounds like you want the content phase handled elsewhere.The PerlInputFilterHandler directive should still take effect even if the main content handler is not
modperl
.If the content handler is being done by mod_perl you should also set a
PerlResponseHandler