Spring Web MVC是一个Servlet!
昨天学习了Java Web服务器是如何处理请求的,可以知道服务器会将请求交给Servlet处理。
简单来说,Java Web服务器是一个接收HTTP请求的应用软件。
就好比在手机代办事项里创建一个个代办事项,我们也可以在Java Web服务器里面创建一个个Servlet,用来处理对应的请求。

在使用Spring Web MVC后,只需要使用@Controller和@RequestMapping注解,就可以定义一个接口,用来接收前端请求。
例如,我们定义如下接口:
@RestController
public class TestController {
@RequestMapping("/test")
public String test() {
return "Hello Spring MVC";
}
}
启动项目后,请求/test地址,可以得到响应:
Hello Spring MVC
自从使用Spring Web MVC之后,我们再也不用创建Servlet了。
似乎Spring MVC超脱了Java Servlet规范。其实不然,Spring MVC本身就是一个Servlet,叫做DispatcherServlet。

DispatcherServlet实现了Servlet接口,它也可以接收从Java Web服务器传递过来的request和response。
为了便于日常开发使用,DispatcherServlet会通过反射的方式,直接将request中的请求参数解析成对应的Java对象,也可以直接将业务处理返回的Java对象解析成对应格式的数据进行响应。
当然,DispatcherServlet的能力不仅仅是转换数据格式,它的成员变量(通常称为核心组件)可以满足各种常见的业务场景:
- 文件上传
- 请求地址映射
- 参数解析
- 参数校验
- 异常统一处理
- ……
相对于原始的Servlet开发,一个请求对应着一个Servlet实现类。
使用Spring Web MVC后,一个Web项目通常只需要一个Dispatcher映射所有请求即可,它会管理整个项目的所有接口。


浙公网安备 33010602011771号