• maven库:https://mvnrepository.com/search?q=spring
  •  
  •  标准的MVC框架

         model:提供模型的数据

         view:负责进行模型数据的展示,例如页面

         controller:作为一个调度员的角色存在,接受用户请求,分配给模型进行处理,并将结果交给view层进行展示

  • Spring MVC

 springMVC是轻量级的,基于请求响应的MVC框架。

前端控制器是:DispatcherServlet;

应用控制器包括:处理器映射器(Handler Mapping)和视图解析器(View Resolver)

页面控制器为controller接口。

一、SpringMVC处理请求流程:

spring leagcy 使用c3p0 实现 mvc_测试

二、SpringMVC核心架构:

步骤:

1、用户发送请求——>DispatcherServlet,前端控制器接到请求后,自己不进行处理,而是委托给其他的解析器进行处理。作为统一的访问点,进行全局的流程控制。

2、DispatcherServlet——>HandlerMapping,HandlerMapping将会把请求映射为HandlerExecutionChain对象。

3、DispatcherServlet——>HandlerAdapter,HandlerAdapter将会把处理器包装为适配器,从而支持多种类型的处理器。

4、HandlerAdapter——>处理器功能处理方法的调用(如某个Controller)。完成功能处理,并返回ModelAndView

5、ModelAndView的逻辑视图名——>ViewResolver,ViewResolver将逻辑视图解析为具体的View

6、View——>渲染,View会根据传进来的Model模型数据进行渲染

7、返回控制权给DispatcherServlet,由DispatcherServlet返回响应给用户,流程结束。

三、入门案例

1、web.xml

 默认DispatcherServlet会加载WEB-INF/[DispatcherServlet的Servlet名字]-servlet.xml配置文件。本示例为WEB-INF/dispatcher-servlet.xml。

也可以自己定义Spring文件

spring leagcy 使用c3p0 实现 mvc_ViewUI_02

2、spring-mvc.xml

2.1 在spring-mvc.xml中配置HandlerMapping和HandleAdapter

实现org.springframework.web.servlet.mvc.Controller或者实现HandlerAdapter,重写的方法中,需要用到servlet的包,故需要在pom中进行加载

2.2 在dispatcher-servlet.xml中配置ViewReSolver

2.3页面处理器的开发

ModelAndView:包含了视图要实现的模型数据和逻辑视图名。“view.addObject("","")”表示添加模型数据。“view.setViewName("/hello")”表示设置逻辑视图名为/hello。视图解析器会将其解析为具体的视图。如解析成“WEB-INF/jsp/hello.jsp”.

需要将bean添加到spring配置文件中,让其接受IoC容器的管理:

name="/hello":前面配置的BeanNameUrlHandlerMapping,表示如果请求的url是“上下文/hello”,则将会交给Bean进行处理。

2.4 开发视图页面

在WEB-INF/jsp目录下创建hello.jsp

spring leagcy 使用c3p0 实现 mvc_java_03

2.5 测试页面

启动项目,在浏览器输入http://localhost:8080/hello

spring leagcy 使用c3p0 实现 mvc_MVC_04

出现以上信息,表示搭建成功。

  • 运行流程分析

spring leagcy 使用c3p0 实现 mvc_java_05