【问题标题】:Why do we use servlets in AEM?为什么我们在 AEM 中使用 servlet?
【发布时间】:2022-12-26 02:02:12
【问题描述】:
我是 AEM 的新手。到目前为止,我一直在使用 MEAN 堆栈开发 Web 应用程序。视图是使用 Angular 构建的,模型是 MongoDB,控制器部分由 Node 服务器处理。
AEM 中的 servlet 是否用于实现 Web 应用程序的控制器部分?就像提交表单的数据将被发送到内部 servlet,后者将与模型通信以处理数据。如果是这样,那么单独处理控制器逻辑不是更好,因为 AEM 应该用于视图部分吗?就像用 java 编写控制器 servlet 并使用一些 servlet 容器(例如 Jboss),然后将表单数据提交到此 REST 端点。
或者是 servlet 仅用于我们可能需要的任何前端处理。在 Angular 中,这是通过在组件、服务或指令(我只能想到这些)的类文件中编写的打字稿代码来实现的。如果是这样,这是否意味着在 AEM 中我们不能编写在特定时间运行的 JavaScript 或 typescript 代码而我们只能使用 servlet?
【问题讨论】:
标签:
java
servlets
aem
aem-6
【解决方案1】:
在 AEM 中,servlet 用于处理服务器端处理并与 AEM 内容存储库等模型进行交互。它们类似于 MEAN 堆栈中 Web 应用程序的控制器部分。
AEM 中的 Servlet 通常用于处理来自客户端(例如 Web 浏览器)的请求、处理请求,然后生成要发送回客户端的响应。它们可用于处理范围广泛的任务,例如从 AEM 内容存储库检索内容、呈现页面或处理表单提交。
AEM servlet 可以用 Java 编写,通常存储在 AEM 代码库中。可以通过向映射到 servlet 的特定 URL 发出 HTTP 请求来访问它们。
可以在 AEM 中使用 servlet 来处理 Web 应用程序的控制器逻辑,以及可能需要的任何前端处理。但是,也可以使用其他技术和方法来处理这些任务,例如使用不同的框架(例如您提到的 Jmax servlet 容器)构建单独的应用程序或服务,并从 AEM 向该应用程序发出 HTTP 请求。
在 AEM 中,您还可以使用 JavaScript 或 TypeScript 等客户端技术来处理前端处理。 AEM 提供了许多用于构建和管理前端应用程序的功能和工具,包括客户端库系统和 AEM JavaScript Use-API。这些可用于在您的 AEM 项目中包含和管理 JavaScript 和 TypeScript 代码。
简而言之,选择如何在 AEM 应用程序中处理控制器和前端处理将取决于您的具体要求和设计考虑因素。仔细评估您的选择并选择最适合您需求的方法非常重要。