购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

Spring Web应用程序使用模型-视图-控制器(Model-View-Controller,MVC)设计模式来处理HTTP请求。如图2-3所示,用户发起HTTP请求(如路由到/user/list),然后执行控制器方法。控制器(Controller)是POJO用@Controller注解的简单Bean,每个控制器类都包含通过@RequestMapping映射到请求URL的方法注解,用于处理不同的HTTP请求。最后,呈现视图(如JSP文件),并返回生成的HTML页面作为响应。

▲图2-3 HTTP请求处理过程

下面介绍HTTP请求的处理机制。其中一个核心组件是前端控制器DispatcherServlet,它是每个Spring Web应用程序的入口。DispatcherServlet将HTTP请求转换为控制器组件的命令,然后将命令分派给处理程序,并管理呈现的数据。它充当了整个应用程序的前端控制器。

DispatcherServlet通常在web.xml中进行定义,默认使用WebApplicationContext作为上下文,Spring默认配置文件为/WEB-INF/servlet.xml。Spring MVC请求的处理机制如图2-4所示。

▲图2-4 Spring MVC请求的处理机制

请求的处理过程如下。

(1)用户发送请求到前端控制器DispatcherServlet。

(2)DispatcherServlet接收用户的请求,通过映射处理(HandlerMapping)确定哪个控制器可以处理请求。通常在XML或注解中查找控制器,然后将请求传递给该控制器。

(3)控制器执行业务逻辑(可以将请求委托给服务或业务逻辑处理器)并返回一个可以渲染模型的视图的名称,同时向DispatcherServlet返回一些信息,用于用户响应。注意,此时并不直接发送信息(模型)给用户。

(4)DispatcherServlet把视图的名称传递给ViewResolver以进行视图解析,返回解析后的物理视图。

(5)DispatcherServlet将模型对象传递给视图。通过这种方式,DispatcherServlet就从视图实现中分离出来了。

(6)通过视图渲染模型。视图可以是JSP页面、Servlet或任何可呈现的组件。

(7)DispatcherServlet向用户响应结果。 SQI8xkO5nlb5jcyQMCLW25UBazzMBmS/tLkoYQlhqGhB/jjl8HyxLGwM2fwmUFvP

点击中间区域
呼出菜单
上一章
目录
下一章
×