【问题标题】:Single servlet to handle a single page web application design用于处理单页 Web 应用程序设计的单个 servlet
【发布时间】:2014-08-06 10:39:28
【问题描述】:

我有一个单页 Web 应用程序,其设计看起来像一个使用普通 Jsp/Servlet 的桌面应用程序。在后端,我有一个 servlet,其中传递了动作参数,用于在单个网页上发生的各种动作。 90% 的请求都是 ajax。当功能在单个网页上增长时,单个 servlet 下将存在更多操作。现在我的问题是

  • 拥有一个 servlet 来管理大量操作是一个好的设计吗?什么是更好的设计?

  • 单个 servlet 与多个 servlet 的性能优势是什么?

  • servlet 代码在增长时是否会在某一时刻难以管理?

出于公司政策原因,我不能使用 spring mvc..

【问题讨论】:

  • 你不需要spring来制作单独的servlet,所以不能使用spring并不是不使用多个servlet的理由。
  • 检查您的组织是否有针对 jsf 的内容,因为它是 java ee 的一部分,它可能是可以接受的

标签: java jsp jakarta-ee servlets web-applications


【解决方案1】:

REST 是 JB Nizet 建议的正确方法。使用 JAX-RS 处理请求。如果您不想采用该路线,则可以使用单个 servlet,但可以像控制器一样使用 servlet,将请求发送到不同的模块来处理它。只要您不将所有代码放在同一个类中,单个 servlet 就可以了。

如果您使用多个 servlet,当您计划将其中一个 servlet 移动到不同的服务器时,设计会变得更好。但是对于多个 servlet,UI(html 或 java 脚本)需要处理路由到正确的 servlet

只有在一个 servlet 类中编写所有内容时,代码才会难以管理...如果设计正确,它应该是易于管理的。

【讨论】:

    【解决方案2】:

    你可以使用jsf

    它是一个 servlet

    打电话给FacesServlet

    --

    除了笑话, 您可以使用单个 servlet,并创建多个类来处理不同的场景,并通过良好的设计将您的 servlet 类保持在 100 行代码以下

    但这本质上是自己写mvc

    【讨论】:

    • 哈哈,开个玩笑。不过,这不是他所说的一个 servlet 的意思。你只会迷惑这个可怜的家伙。
    【解决方案3】:

    拥有一个 servlet 来管理大量操作是一个好的设计吗?什么是更好的设计?

    没有。一个类基本上承担了后端的所有职责,这不是好的设计。除非它仅用作操作的调度程序,否则您将重新发明所有现有 MVC 框架已经发明多年的轮子(Spring MVC 等)。坦率地说,我会反对“公司政策”,并使用适当的工具来完成这项工作:Spring MVC 或 JAX-RS 或任何其他可用于轻松实现适当 REST 后端的现代框架。

    单个 servlet 与多个 servlet 的性能优势是什么?

    无。

    servlet 代码在增长时会在某一时刻变得难以管理吗?

    是的。您最好遵循 REST 原则并将不同的 URL 分配给您的不同操作,而不是使用参数来传递操作。此外,所有操作不应使用相同的 HTTP 方法。搜索或阅读信息应使用 GET,而创建内容应使用 POST,更新内容应使用 PUT。

    当然,每个 URL 使用一个 servlet。

    【讨论】:

      猜你喜欢
      • 2012-04-20
      • 2011-02-01
      • 2012-03-05
      • 1970-01-01
      • 1970-01-01
      • 2012-10-09
      • 1970-01-01
      • 2013-11-17
      • 1970-01-01
      相关资源
      最近更新 更多