【问题标题】:Raw Servlet vs. Spring MVC [closed]原始 Servlet 与 Spring MVC [关闭]
【发布时间】:2012-06-02 06:46:10
【问题描述】:

您应该使用原始 Java Servlet 或使用 Spring MVC(或任何其他框架)构建 Web 应用程序的原因是什么?

应该避免使用 Spring MVC 是否有例外,使用 Raw Servlets 有什么好处?

【问题讨论】:

    标签: java spring web-applications servlets


    【解决方案1】:

    如果您正在构建一个非常快速且肮脏的演示,并且您以后不打算扩展,那么 Spring 可能会导致许多额外的配置问题(如果您以前做过,则不是真的,但我总是以战斗告终以一种或另一种方式使用它),所以这可能是考虑使用普通旧 servlet 的时候了。一般来说,除了超级快速和肮脏的演示之外,使用某种形式的 MVC 框架将使未来的生活变得更加轻松,并且也符合最佳实践。 Spring 让事情变得超级简单,只需要花一些时间在前端配置所有东西。

    我应该注意,你可以用 java servlet 做任何你不能用 Spring 做的事情。最大的区别在于设置时间。

    编辑: 值得注意的是,当我发布此答案时,我并不知道 Spring Boot 实际上很容易使用嵌入式 Web 服务器或更传统的 Web 容器启动运行.这是一个快速入门示例的链接:http://projects.spring.io/spring-boot/#quick-start

    【讨论】:

    • 目前我正在努力切换到 Spring,因为我已经编写了相当多的代码。尽管重构当然总是一件好事。这还涉及数据库实体的 CRUD 之类的东西,例如 Spring Roo。
    • 我不使用 Spring MVC,但考虑到它,所以我想知道 Spring 是否会减慢或炸毁应用程序的内存消耗?
    • @nexus,你应该把它作为一个不同的问题发布
    【解决方案2】:

    Servlet 技术 用于更通用 请求-响应范例的服务器端扩展。 Spring 只是将它用于通过 HTTP 的 Web 应用程序。

    还有一些来自这里的引述:http://www.reddit.com/r/java/comments/29f3ul/why_is_spring_mvc_better_than_servlets_jsp/

    Servlet 基于用于处理请求和 回应。像 Spring MVC 这样的 Web 框架旨在使 构建处理 HTTP 请求和响应的 Web 应用程序, 更轻松。大多数 Java Web 框架,包括 Spring MVC,都使用 servlet 在幕后。

    您可以使用 servlet 编写 Web 应用程序,但您必须这样做 手动处理所有细节。你会得到很少的帮助 典型的 Web 内容,例如验证、REST、请求/响应正文 JSON、表单绑定等。您最终将编写大量实用程序代码 支持您的网络应用程序。

    另一方面,Web 框架旨在实现所有这些 东西很简单。使用 Spring MVC,您无需手动操作 处理请求和响应,即使您仍然可以访问 如果你需要的话给他们。想要在 Spring MVC 中返回 JSON?只需添加一个 @ResponseBody 注释和 Spring 将附加它。想要 RESTful URL? 简单。输入验证?小菜一碟。想要将表单数据绑定到 目的?简单的。使用 servlet,您必须完成所有这些工作 手动。

    不过,使用原始 servlet 可能是一种很好的学习体验。真的 有助于阐明 Web 框架如何让您的生活变得轻松!

    【讨论】:

      【解决方案3】:

      我不经常使用 Spring。但我不知道它会对性能产生什么影响。 MVC 可以提供帮助,但它们会造成混乱、额外的工作和挫败感。 对于由一名程序员实现的大多数项目,旧的好方法已经足够了。当有多个开发人员时,MVC 可能会有所帮助。

      对于大多数项目,我会使用普通的 servlet/jsp。如果我需要可重复使用的组件,我会使用 wicket。 Servlets 与 JSPs/freemarker/velocity 或其他模板引擎一起用于表示。

      如果您遵循 Servlets/JSP 的命名模式,我认为您不需要 Spring MVC。

      【讨论】:

      • Spring MVC 也可以与模板引擎一起使用
      【解决方案4】:

      我发现,随着 Spring 版本 3+ 的添加,使用所有基础知识引导 Spring Web 应用程序变得更加容易。 Spring MVC 的优势在于,一旦您启动了应用程序上下文和数据库连接,创建新控制器就变得异常容易,并且它遵循更多逻辑架构,新开发人员实际上可能会发现更容易熟悉它.

      事实上,在我之前的工作地点,我们正在构建 Java Servlet Web 应用程序,但我们发现我们必须创建自己的架构或应用程序的主干,而这实际上是更多的工作。 Spring 可以处理这些问题,这意味着开发人员可以继续处理实际的应用程序逻辑,而不必过多担心架构。

      【讨论】:

        【解决方案5】:

        我已经开发了包含原始 servlet 和 Web 应用程序框架的项目。 框架为您提供一切,您只需要设置和配置环境,编码更容易。结果是您对 Web 开发一无所知。 但是,带有原始 api 和 servlet 的代码让您有机会获得经验并成为一名程序员。

        【讨论】:

          猜你喜欢
          • 2012-06-03
          • 2011-01-29
          • 1970-01-01
          • 2017-10-01
          • 1970-01-01
          • 1970-01-01
          • 2021-01-22
          • 2023-03-25
          • 1970-01-01
          相关资源
          最近更新 更多