Raw Servlet vs. Spring MVC [已关闭]

2022-09-01 04:58:43

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

当你应该避免Spring MVC时,是否有例外,使用Raw Servlets这样做有什么好处?


答案 1

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

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

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


答案 2

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 应用程序,但您必须手动处理所有细节。对于典型的Web内容,如验证,REST,JSON的请求/响应正文,表单绑定等,您将获得很少的帮助。您最终将编写大量实用程序代码来支持您的Web应用程序。

另一方面,Web框架旨在使所有这些东西变得简单。使用Spring MVC,您无需手动处理请求和响应,即使如果需要,您仍然可以访问它们。想要在春季 MVC 中返回 JSON?只需添加一个@ResponseBody注释,Spring就会附加它。想要回复网址?容易。输入验证?小菜一碟。想要将表单数据绑定到对象?简单。使用servlet,你必须手动完成所有这些事情。

不过,使用原始的 servlet 可能是一个很好的学习体验。它确实有助于澄清Web框架如何使您轻松生活!


推荐