【发布时间】:2012-06-02 06:46:10
【问题描述】:
您应该使用原始 Java Servlet 或使用 Spring MVC(或任何其他框架)构建 Web 应用程序的原因是什么?
应该避免使用 Spring MVC 是否有例外,使用 Raw Servlets 有什么好处?
【问题讨论】:
标签: java spring web-applications servlets
您应该使用原始 Java Servlet 或使用 Spring MVC(或任何其他框架)构建 Web 应用程序的原因是什么?
应该避免使用 Spring MVC 是否有例外,使用 Raw Servlets 有什么好处?
【问题讨论】:
标签: java spring web-applications servlets
如果您正在构建一个非常快速且肮脏的演示,并且您以后不打算扩展,那么 Spring 可能会导致许多额外的配置问题(如果您以前做过,则不是真的,但我总是以战斗告终以一种或另一种方式使用它),所以这可能是考虑使用普通旧 servlet 的时候了。一般来说,除了超级快速和肮脏的演示之外,使用某种形式的 MVC 框架将使未来的生活变得更加轻松,并且也符合最佳实践。 Spring 让事情变得超级简单,只需要花一些时间在前端配置所有东西。
我应该注意,你可以用 java servlet 做任何你不能用 Spring 做的事情。最大的区别在于设置时间。
编辑: 值得注意的是,当我发布此答案时,我并不知道 Spring Boot 实际上很容易使用嵌入式 Web 服务器或更传统的 Web 容器启动运行.这是一个快速入门示例的链接:http://projects.spring.io/spring-boot/#quick-start
【讨论】:
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 框架如何让您的生活变得轻松!
【讨论】:
我不经常使用 Spring。但我不知道它会对性能产生什么影响。 MVC 可以提供帮助,但它们会造成混乱、额外的工作和挫败感。 对于由一名程序员实现的大多数项目,旧的好方法已经足够了。当有多个开发人员时,MVC 可能会有所帮助。
对于大多数项目,我会使用普通的 servlet/jsp。如果我需要可重复使用的组件,我会使用 wicket。 Servlets 与 JSPs/freemarker/velocity 或其他模板引擎一起用于表示。
如果您遵循 Servlets/JSP 的命名模式,我认为您不需要 Spring MVC。
【讨论】:
我发现,随着 Spring 版本 3+ 的添加,使用所有基础知识引导 Spring Web 应用程序变得更加容易。 Spring MVC 的优势在于,一旦您启动了应用程序上下文和数据库连接,创建新控制器就变得异常容易,并且它遵循更多逻辑架构,新开发人员实际上可能会发现更容易熟悉它.
事实上,在我之前的工作地点,我们正在构建 Java Servlet Web 应用程序,但我们发现我们必须创建自己的架构或应用程序的主干,而这实际上是更多的工作。 Spring 可以处理这些问题,这意味着开发人员可以继续处理实际的应用程序逻辑,而不必过多担心架构。
【讨论】:
我已经开发了包含原始 servlet 和 Web 应用程序框架的项目。 框架为您提供一切,您只需要设置和配置环境,编码更容易。结果是您对 Web 开发一无所知。 但是,带有原始 api 和 servlet 的代码让您有机会获得经验并成为一名程序员。
【讨论】: