【问题标题】:How can we implement interceptor in Mason-perl based webapplication我们如何在基于 Mason-perl 的 web 应用程序中实现拦截器
【发布时间】:2017-04-18 04:33:41
【问题描述】:

我正在开发一个基于 Mason-perl 的 web 应用程序,并希望在特定 url 到达流和生成视图之前拦截它(如果满足条件,我将进行一些条件检查并重定向到不同的 URL)。在基于 Spring 的 mvc 中,我们有 interceptor 的概念,这有助于我们实现这一目标。有人可以指出如何在基于 Mason-perl 的 web 应用程序中实现这一点

【问题讨论】:

  • Mason 本身不是 MVC。它只是 V(如 view 中的)。你如何使用它?您是使用自己的路由处理,还是使用另一个 Web 框架?您可能必须在调度程序中执行此操作。梅森本身并不能提供你想要的。请参阅source for run_make_request
  • 我不熟悉拦截器的概念,也许你需要像 Mason::Plugin::RouterSimple 这样的东西?如果对你有用请看这个问题stackoverflow.com/questions/32353992/…
  • @simbabque 您的评论并不完全正确。 Mason 通常用作视图,您可以单独使用它,并且它也支持应用程序的控制器部分。 (如果您检查请求分派如何工作到组件、自动处理程序和 dhandlers 就足够了)。此外,Mason 完全支持 Mason::Plugin::RouterSimple 路由。所有这些也提供了足够强大的“C”部分。 :) 在旧教程中阅读更多内容(当前教程已移至 Poet,但旧教程仍然完全有效):metacpan.org/pod/release/JSWARTZ/Mason-2.16/lib/Mason/Manual/…

标签: perl web-applications frameworks mason


【解决方案1】:

在 mason 中执行类似操作的常规方法是在包装链中使用自动处理程序。

如果您有一个 dhandler 或 .m 文件,您可以在同一目录中添加一个自动处理程序文件来执行检查,然后再将处理传递给另一个文件。如果您已经在各个地方使用自动处理程序并希望确保每个页面都执行了检查,请将自动处理程序放在根目录中并在那里执行检查。

如需更全面的讨论,请参阅 Mason Book chapter 3(从 Autohandlers 部分开始)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-03
    • 1970-01-01
    • 1970-01-01
    • 2019-09-27
    • 2021-10-08
    • 2021-05-05
    • 2010-11-19
    • 2021-11-25
    相关资源
    最近更新 更多