我是ATG框架的新手,我想知道Servlet和ATG中的Droplet之间的区别。我阅读了一些教程,但仍然不清楚。
答案 0 :(得分:0)
几年来我一直没有使用ATG,您可能使用的版本与我以前使用的版本不同,但是一种简单的回答方法是说Servlet更像是J2EE MVC概念,即在这种情况下,控制器是控制器,而Droplet是ATG的“控制器”。 ATG的设计模式不完全是MVC(在大多数情况下,视图中往往会有更多的逻辑),但液滴是可重用的组件,视图(您的JSP)用来从模型中获取数据(您的xxxManager,xxxService,存储库层类等)
例如,如果我正在处理用于显示购物车的页面,则可以在J2EE的web.xml中注册“ / Cart” servlet。在此servlet上调用doGet时,我将调用我需要的所有模型组件,以收集有关购物车的数据,并使用RequestDispatcher将该数据发送到JSP。我所有的模型/控制器逻辑都在这里完成,然后发送给视图渲染。
在ATG中,您倾向于较少依赖web.xml配置,而更多地依赖Nucleus注册和实例化的组件。因此,您可以创建cart.jsp并使用诸如临时获取所需数据之类的标签。您可能需要一个小滴来计算当前价格并显示它,或者将促销应用到配置文件并列出它们。该页面所需的每条数据,都可以使用一个小滴标签来收集和显示。
您可能会说,小滴往往是“在页面上”,而servlet则是在“页面之间”。
答案 1 :(得分:0)
仅说 Servlet 时,这是一个通用Java软件组件,它根据收到的请求提供功能。 Java servlet需要在servlet容器中运行。
特定于ATG的组件有两种,称为servlet- DynamoServlet 和 PipelineableServlet 。
DynamoServlet 是您需要扩展以创建Droplet的基类。 Droplet基本上是一段Java代码,您可以在ATG应用程序中运行的JSP页面上运行。它使用ATG提供的标签包含在JSP页面中。当JSP执行时,它将执行Droplet中的代码,并在页面上显示Droplet的输出。
PipelineableServlet 是一个类(它是称为Servlet Pipeline的类链的一部分),在接收到HTTP请求时提供功能。链中的每个servlet对请求执行特定的操作,并将修改后的请求中继到链中的下一个servlet。