我的任务是创建一个 Java Web 应用程序,该应用程序由两个页面组成:一个“绘制”页面和一个“评估”页面。我将在 Eclipse 中进行开发。
“抽奖”页面将促进以下过程:
- 从表单中获取用户输入
- 使用 Servlet 在后台构建模型
- 将模型发送到客户端的 Applet(可能通过 JSON)以进行可视化渲染
“评估”页面将:
- 从类似的表单中获取用户输入,以使用 Servlet 构建类似的对象(相同的类)
- 通过 Servlet 上的算法运行模型,并将结果显示在屏幕上。
页面可以相对独立。
我的问题是,我到底应该如何实现这个组合?
我熟悉 Servlet 开发和 Spring MVC/Webflow 框架,但绝不是专家。然而,我猜想 Spring 对于这个简单的应用程序来说太过分了,而且我从未实现过具有多个主要功能的 Servlet。
我是否应该创建一个在 doGet/doPost 方法中只包含条件逻辑并根据请求的 URL 执行操作的 HttpServlet?
我应该制作两个单独的 Servlet 吗?
如果是这样,我会在 Eclipse 中创建两个单独的项目,还是只在一个项目中在 web.xml 中注册两个 Servlet?我应该做一些完全不同的事情吗?
我不是在寻找代码,只是想更深入地了解如何处理此类应用程序。
最佳答案
我将提出与德米特里相反的观点。我认为人们知道如何编写普通 servlet 是件好事,但当涉及到为企业编写代码时,我认为最好使用 Spring MCV。主要原因有:
- 您已经有 Spring MVC 的使用经验,因此没有学习曲线
- 虽然需求看起来很简单,但我的经验是,像这样的 Web 项目很快就会超出其最初的规范,此时您会希望自己使用 Spring MVC
- 您必须在 servlet 中编写和维护通常由 Spring MVC 处理的功能 - 我喜欢这样一句话:它们解决了您甚至还没有考虑过的问题。
- 您编写的每一行代码都可能存在错误,通过减少编写的代码量可以降低出现错误的风险
- Spring MVC 的设计方式使您可以使用您喜欢/需要的尽可能少或尽可能多的功能。通过注释,您可以使用数量惊人的少量代码/xml 来启动并运行一个简单的应用程序
- 使用 Spring MVC 测试更加容易
- Spring MVC 遵循其他程序员已经知道的约定。如果您离职,很快就会有人接替您。 OTOH,如果您编写一个简单的 servlet,您可以采用多种不同的方式来实现,这可能会使其他人更难以维护
- 使用现代硬件/操作系统,添加 Spring MVC 给项目添加的额外内存/开销可以忽略不计 - 我们不再使用 128KB 内存运行服务器,但有些人仍然有我们这样做的心态。如果对基准测试有疑问,请不要过早优化!
关于java - 如何实现具有两种不同功能的servlet/applet组合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13146051/