【Java.Spring.MVC】使用Spring MVC构建Web应用程序

Spring MVC请求的处理过程

请求会由DispatcherServlet分配给控制器(根据处理器映射来确定)。在控制器完成处理后,接着请求会被发送给一个视图(根据视图解析器来确定)来呈现输出结果:

【Java.Spring.MVC】使用Spring MVC构建Web应用程序_第1张图片


  • (1)第一步是 Spring的DispatcherServlet。Spring MVC的所有请求都会通过一个前端控制器Servlet —— DispatcherServlet;DispatcherServlet的任务是将请求发送给Spring MVC控制器;
  • (2)控制器是一个用于处理请求的Spring组件;DispatcherServlet会查询一个多个处理器映射HandlerMapping来确定请求应该发送给哪个控制器Handler;HandlerMapping根据请求所携带的URL信息来进行决策;
  • (3)选中了控制器Handler之后,DispatcherServlet会将请求发送给选中的Handler;到达了Handler,请求会等待Handler处理请求中的信息(实际上,Handler本身只处理很少的处理工作,而是将业务逻辑委托给一个或多个服务对象);
  • (4)Handler在完成逻辑处理后,会产生一些信息Model,这些信息需要返回给用户并在浏览器上显示;Handler所做的最后一件事是将Modle数据打包,并且标识出用于渲染输出的视图View的名称。并将请求连同Model和View名称发送回DispatcherServlet;
  • (5)传递给DispatcherServlet的View的名称并不直接表示某个特定的JSP;它仅仅传递了一个逻辑的视图名,这个名字将会用来查找产生结果的真正视图。DispatcherServlet将会使用ViewResolver来将逻辑视图名匹配为一个特定的View实现,可能也可能不是JSP;
  • (6)最后是将Model数据交付给View,View使用Model数据渲染输出,并通过这个输出将响应对象传递给客户端;

Spring MVC简介

M - Model map会被自动转换成合适的格式,如JSP中的request attributes, Velocity中的template model


在其他MVC框架中集成Spring

通过配置ContextLoaderListener启动一个Spring root application context, 然后通过ServletContext获取这个spring context:

WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(request.getServletContext());



你可能感兴趣的:(java,spring,mvc)