SpringMVC

 

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。最典型的MVC就是JSP + servlet + javabean的模式

 

Spring Web MVC是一种基于Java实现的Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发 SpringMVC是spring框架的一个子模块,springmvc和spring无需通过中间整合层进行整合。

 

 

 

 

 

SpringMVC处理流程图

 

 

 

 

处理流程

整个处理过程从一个HTTP请求开始:

1)DispatcherServlet接收到请求后,根据对应配置文件中配置的处理器映射,找到对应的处理器映射项(HandlerMapping),根据配置的映射规则,找到对应的处理器(Handler)。接着再通过相应的HandlerAdapter处理该Handler

2) HandlerAdapter在对Handler进行处理之后会返 回一个ModelAndView传给DispatcherServlet, ModelAndView包含了处理结果的视图和视图中要使用的数据。

3)DispatcherServlet根据得到的ModelAndView中的视图对象,找到一个合适的ViewReslover(视图解析器),根据视图解析器的配置,DispatcherServlet将视图要显示的数据传给对应的视图,最后给浏览器构造一个HTTP响应。

 

组件说明

1、前端控制器DispatcherServlet(不需要程序员开发) 作用接收请求,响应结果,相当于转发器,中央处理器。 有了DispatcherServlet减少了其它组件之间的耦合度。

 2、处理器映射器HandlerMapping(不需要程序员开发) 作用:根据请求的url查找Handler  

3、处理器适配器HandlerAdapter(不需要程序员开发) 作用:按照特定规则(HandlerAdapter要求的规则)去执行Handler  

4、处理器Handler(需要程序员开发) 注意:编写Handler时按照HandlerAdapter的要求去做,这样适配器才可以去正确执行Handler  

5、视图解析器View resolver(不需要程序员开发) 作用:进行视图解析,根据逻辑视图名解析成真正的视图(view)

 6、视图View(需要程序员开发jsp) View是一个接口,实现类支持不同的View类型(jsp、freemarker、pdf...)

 

 

搭建环境

1、增加Spring的JAR 包。注意不能缺少spring-webmvc.XXX.jar

 

 

 

2、在web.xml 中配置DispatcherServlet 控制器

 

 

 

3、在springmvc.xml 中进行配置

编写Handler 和jsp

 

 

 

 

 

 

测试运行

 

其他非注解映射器

 

 

 

 

 

 

 

 

 

 

注解方式配置方式

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2020-03-22 10:01  LPJのBLOG  Views(163)  Comments(0Edit  收藏  举报