- maven库:https://mvnrepository.com/search?q=spring
- 标准的MVC框架
model:提供模型的数据
view:负责进行模型数据的展示,例如页面
controller:作为一个调度员的角色存在,接受用户请求,分配给模型进行处理,并将结果交给view层进行展示
- Spring MVC
springMVC是轻量级的,基于请求响应的MVC框架。
前端控制器是:DispatcherServlet;
应用控制器包括:处理器映射器(Handler Mapping)和视图解析器(View Resolver)
页面控制器为controller接口。
一、SpringMVC处理请求流程:
二、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文件
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
2.5 测试页面
启动项目,在浏览器输入http://localhost:8080/hello
出现以上信息,表示搭建成功。
- 运行流程分析