SpringMVC初认识
1.什么是MVC
a.MVC是模型(Model)、视图(View )、控制器(Controller)的简写,是一种软件设计规范。
b.是将业务逻辑、数据、显示分离的方法来组织代码
c.MVC主要作用是降低了视图与业务逻辑间的双向耦合
d.MVC不仅仅是一种设计模式,更是一种架构模式
2.第一个SpringMVC程序
a.新建一个Moudle,添加web支持
b.写一个视图 test.jsp 显示数据${msg}
c.确定导入了SpringMVC的依赖,以及在lib文件夹中的依赖
d.在web.xml中配置DispatcherServlet:这个是SpringMVC的核心:请求分发器,前端控制器
e.编写SpringMVC的配置文件:springmvc-servlet.xml (名称按照官方规定)
f.在配置文件中 添加处理器映射器、处理器适配器和视图解析器(SpringMVC核心三要素)
g.Controller层实现业务代码和视图跳转
2.1 SpringMVC的优点
-
可以支持各种视图技术,而不仅仅局限于JSP;
-
与Spring框架集成(如IoC容器、AOP等);
-
清晰的角色分配:前端控制器(dispatcherServlet) , 请求到处理器映射(handlerMapping), 处理器适配器(HandlerAdapter), 视图解析器(ViewResolver)。
-
支持各种请求资源的映射策略。
3.SpringMVC执行流程
a.DispatcherServlet表示前置控制器,是整个SpringMVC的控制中心,接受用户发出的请求并拦截
假设请求的url为:http://localhost://8080/SpringMVC/hello
其中:http://localhost:8080 为服务器域名
SpringMVC为部署在服务器上的web站点
hello表示控制器
如上的url表示请求位于服务器localhost:8080上的SpringMVC站点的hello控制器
b.HandlerMapping表示处理器映射,DispatcherServlet自己调用
HandlerMapping根据请求url去寻找Handler
c.HandlerExecution表示具体的Handler,其主要作用是根据url寻找具体的控制器,在上面的例子中控制器是hello,
d.HandlerExecution将解析后的信息返回给DispatcherServlet
e.HandlerAdapter表示处理器适配器,其按照特定规则去执行Handler(就是去寻找Controller)
f.Controller将具体的执行信息返回给HandlerAdapter,比如:ModelAndView
g.DispatcharServlet调用视图解析器(ViewResolver)解析HandlerAdapter传递的逻辑视图名
h.DispatcharServlet根据视图解析器解析的视图结果,调用具体视图
i.最终视图呈现给用户