【问题标题】:Java Servlet Filter Equivalent in Ruby [on Rails] and PHP?Ruby [on Rails] 和 PHP 中等效的 Java Servlet 过滤器?
【发布时间】:2009-01-06 16:17:01
【问题描述】:

不确定术语是否正确,但 Ruby 和 PHP 中的 Java Servlet 过滤器有粗略的等价物吗?它们是实际的具体吗?

我假设 Python 中还有许多常见的 Web 应用程序库/框架。那里有等价物吗?

谢谢。

=== 附录 ===

根据Kevin Davis 的好建议,我只想快速详细说明Java Servlet 过滤器是什么。它基本上是一个 HTTP 请求拦截器。可以在请求的原始接收和请求的最终目的地之间配置一系列过滤器。请求参数(以及 cookie、标头等)被传递给链中的第一个过滤器,每个过滤器对它们做一些事情(或不做),然后将它们传递到链上(或不传递。例如,缓存过滤器可能只需返回结果,绕过链的其余部分和端点)。

其中一个优点是能够修改或增强 Web 应用程序而无需触及原始端点代码。

干杯。

【问题讨论】:

  • 这可能有助于描述他们的工作

标签: java php python ruby-on-rails servlets


【解决方案1】:

我认为还有一些 常见的 Web 应用程序库/框架 Python。那里有等价物吗?

Django 提供了一个中间件挂钩框架,可用于更改请求/响应处理中的输入/输出。有关详细信息,请参阅Middleware documentation page

【讨论】:

    【解决方案2】:

    在典型的 Apache/PHP 场景中,答案通常是:不,没有自定义过滤器。但是,对于使用 Java Servlet 过滤器解决的问题,有一些解决方案:

    您可以创建.htaccess file 来为目录及其子目录设置这些属性。

    【讨论】:

      【解决方案3】:

      Ruby on Rails has filters 服务于这个目的

      一个新特性是Rack Middleware,类似于Django中间件

      【讨论】:

        【解决方案4】:

        在 PHP 世界中,Zend Framework 为其前端控制器对象提供了一个插件 API,允许在预路由和后期调度阶段之间挂钩插件对象。尽管我没有机会使用 Java servlet,但我认为这将与您附录中的描述相匹配。无论如何,这不是内置在 PHP 中的,它的框架依赖于 RoR 或 Django。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-08-11
          • 1970-01-01
          • 2018-04-20
          • 2014-07-13
          • 2020-06-02
          • 1970-01-01
          相关资源
          最近更新 更多