2

我的任务是创建一个由两个页面组成的 Java Web 应用程序,一个“绘图”页面和一个“评估”页面。我将在 Eclipse 中进行开发。

“绘图”页面将促进以下过程:

  • 从表单中获取用户输入
  • 使用 Servlet,在后台构建模型
  • 将模型发送到客户端的 Applet(可能通过 JSON)以进行可视化呈现

“评估”页面将:

  • 使用 Servlet 从类似的表单中获取用户输入以构建类似的对象(相同的类)
  • 通过 Servlet 上的算法运行模型,并在屏幕上显示结果。

页面可以是相对独立的。

我的问题是,我究竟应该如何实施这种组合?

我熟悉 Servlet 开发和 Spring MVC/Webflow 框架,但绝不是专家。但是,我猜 Spring 对于这个简单的应用程序来说可能是多余的,而且我从未实现过具有多个主要功能的 Servlet。

我是否应该在 doGet/doPost 方法中创建一个仅具有条件逻辑的 HttpServlet,并根据请求的 URL 执行操作?

我应该制作两个单独的 Servlet 吗?

如果是这样,我会在 Eclipse 中创建两个单独的项目,还是只创建一个在 web.xml 中注册两个 Servlet 的项目?我应该做一些完全不同的事情吗?

我不是在寻找代码,只是想对如何处理这种类型的应用程序有更深入的了解。

4

2 回答 2

2

我将提供与 Dmitri 的观点相反的观点。我认为人们知道如何编写普通的 servlet 非常棒,但是在为企业编写代码时,我认为使用 Spring MCV 会更好。主要原因是:

  • 你已经有使用 Spring MVC 的经验,所以没有学习曲线
  • 尽管需求看起来很简单,但我的经验是,像这样的 Web 项目会迅速超出其初始规范,此时您会希望自己使用 Spring MVC
  • 您将不得不编写和维护通常由 Spring MVC 处理的 servlet 中的功能 - 我喜欢这样的说法:它们已经解决了您甚至还没有想到的问题。
  • 您编写的每一行代码都有可能出现错误,通过减少您编写的代码量,您可以降低出现错误的风险
  • Spring MVC 的设计方式使您可以尽可能少地使用您喜欢/需要的功能。使用注解,您可以使用少量的代码/xml 行来启动和运行一个简单的应用程序
  • 使用 Spring MVC 进行测试更容易
  • Spring MVC 遵循其他程序员已经知道的约定。如果你离开你的工作,那么有人可以很快接手。OTOH,如果您编写一个简单的 servlet,您可以通过多种不同的方式来实现,这可能会使其他人更难维护
  • 使用现代硬件/操作系统,将 Spring MVC 添加到您的项目中的额外内存/开销可以忽略不计 - 我们不再使用 128KB 内存运行我们的服务器,但有些人仍然有我们这样做的心态。如果有疑问对其进行基准测试,请不要及早优化!
于 2012-10-30T23:50:37.463 回答
1

Spring(或任何其他 MVC)框架对此肯定是矫枉过正,servlet 就可以了。

确保你所有的实际逻辑都在一个单独的类中,你的所有 servlet 应该做的就是应用任何需要做的处理来读取用户输入,并在你的服务类上调用适当的方法。基本上将特定于 Web 的部分保持在最小限度。

无论是两个单独的 servlet 还是一个打开请求路径的 servlet 都无关紧要。我会使用两个独立的,因为将请求映射到方法几乎就是 servlet 的设计目的。

在 Eclipse 中不需要单独的项目,只需在 web.xml 中定义 servlet(或者在 Servlet 3.0 上使用注释)。

听起来你在正确的轨道上。

于 2012-10-30T20:31:50.290 回答