ATG servlet and Droplet



我是ATG框架的新手,我想知道ATG中Servlet和液滴之间的区别。我看了一些教程,但还是不清楚。

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

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

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

你可能会说液滴倾向于"在页面上",而servlet则意味着"在页面之间">

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

具体到ATG,有两种组件被称为servlet-DynamoServlet

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

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

最新更新