您应该使用原始 Java Servlet 或使用 Spring MVC(或任何其他框架)构建 Web 应用程序的原因是什么?
当您应该避免使用 Spring MVC 时是否有例外,使用 Raw Servlets 这样做有什么好处?
您应该使用原始 Java Servlet 或使用 Spring MVC(或任何其他框架)构建 Web 应用程序的原因是什么?
当您应该避免使用 Spring MVC 时是否有例外,使用 Raw 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 基于用于处理请求和响应的低级 API。像 Spring MVC 这样的 Web 框架旨在使构建处理 HTTP 请求和响应的 Web 应用程序更容易。大多数 Java Web 框架,包括 Spring MVC,都在幕后使用 servlet。
您可以使用 servlet 编写 Web 应用程序,但您必须手动处理所有细节。在验证、REST、JSON 的请求/响应主体、表单绑定等典型 Web 内容方面,您将获得的帮助很少。您最终将编写大量实用程序代码来支持您的 Web 应用程序。
另一方面,Web 框架旨在使所有这些东西变得简单。使用 Spring MVC,您不必为手动处理请求和响应而烦恼,即使您仍然可以在需要时访问它们。想要在 Spring MVC 中返回 JSON?只需添加一个 @ResponseBody 注释,Spring 就会附加它。想要 RESTful URL?简单的。输入验证?小菜一碟。想要将表单数据绑定到对象?简单的。使用 servlet,您必须手动完成所有这些工作。
不过,使用原始 servlet 可能是一种很好的学习体验。它确实 有助于阐明 Web 框架如何让您的生活变得轻松!
我已经使用原始 servlet 和 Web 应用程序框架开发了项目。框架为您提供一切,您只需要设置和配置环境,编码更容易。结果是您对 Web 开发一无所知。但是,带有原始 api 和 servlet 的代码使您有机会获得经验并成为一名程序员。
我不经常使用 Spring。但我不知道它会对性能产生什么影响。MVC 可以提供帮助,但它们会造成混乱、额外的工作和挫败感。对于由一名程序员实现的大多数项目,旧的好方法已经足够了。当有多个开发人员时,MVC 可能会有所帮助。
对于大多数项目,我会使用普通的 servlet/jsp。如果我需要可重复使用的组件,我会使用 wicket。Servlets 与 JSPs/freemarker/velocity 或其他模板引擎一起用于表示。
如果您遵循 Servlets/JSP 的命名模式,我认为您不需要 Spring MVC。
我发现,随着 Spring 3+ 版本的添加,使用所有基础知识引导 Spring Web 应用程序变得更加容易。Spring MVC 的优势在于,一旦您启动了应用程序上下文和数据库连接,创建新控制器就变得异常容易,并且它遵循更多逻辑架构,新开发人员实际上可能会发现更容易熟悉它.
事实上,在我之前的工作地点,我们正在构建 Java Servlet Web 应用程序,但我们发现我们必须创建自己的架构或应用程序的主干,这实际上是更多的工作。Spring 可以处理这些,这意味着开发人员可以继续处理实际的应用程序逻辑,而不必过多地担心架构。