【问题标题】:ATG servlet and DropletATG servlet 和 Droplet
【发布时间】:2019-01-23 10:39:12
【问题描述】:

我是 ATG 框架的新手,我想了解 ATG 中的 Servlet 和 droplet 之间的区别。我阅读了一些教程,但仍然没有明确的想法。

【问题讨论】:

    标签: java atg


    【解决方案1】:

    我已经有几年没有使用 ATG 了,您可能使用的版本与我不同,但回答这个问题的一个简单方法是说 Servlet 更像是一个 J2EE MVC 概念,即在这种情况下是控制器,而 Droplets 是 ATG 的“控制器”。 ATG 的设计模式并不完全是 MVC(在大多数情况下,视图中往往有更多的逻辑),但 Droplet 是视图(您的 JSP)用来从模型(您的xxxManager、xxxService、Repository层类等)

    例如,如果我正在处理一个旨在显示购物车的页面,我可能会在 J2EE 的 web.xml 中注册一个“/Cart”servlet。当在这个 servlet 上调用 doGet 时,我会调用我需要的所有模型组件来收集有关购物车的数据,并使用 RequestDispatcher 将该数据发送到 JSP。我所有的模型/控制器逻辑都在这里完成,然后发送到视图渲染。

    在 ATG 中,您倾向于较少依赖 web.xml 配置,而更多地依赖 Nucleus 注册和实例化的组件。因此,您可以创建您的 cart.jsp 并使用标签来获取您需要的临时数据。您可能有一个小滴来计算当前价格并显示它,或者将促销应用到配置文件并列出它们。页面需要的每一条数据,都可以用一个droplet标签来收集和展示。

    您可能会说,Droplet 倾向于“在页面上”,而 servlet 则应该在“页面之间”。

    【讨论】:

      【解决方案2】:

      当您只说 Servlet 时,这是一个通用 Java 软件组件,它根据接收到的请求提供功能。 Java servlet 需要在 servlet 容器中运行。

      特定于 ATG,有两种称为 servlet 的组件 - DynamoServletPipelineableServlet

      DynamoServlet 是您需要扩展以创建 Droplet 的基类。 Droplet 基本上是一段 Java 代码,您可以在 ATG 应用程序中运行的 JSP 页面上运行它。它使用 ATG 提供的标记包含在 JSP 页面中。当 JSP 执行时,它将执行 Droplet 内的代码,并将 Droplet 的输出呈现在页面上。

      PipelineableServlet 是一个类(它是称为 Servlet Pipeline 的类链的一部分),它在接收到 HTTP 请求时提供功能。链中的每个 servlet 对请求执行特定操作,并将修改后的请求中继到链中的下一个 servlet。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-04-10
        相关资源
        最近更新 更多