SpringMVC简介及工作原理

SpringMVC是Spring框架提供的一个实现webMVC设计模式的轻量级框架它于Sturts2框架一样,都属于MVC框架

   三层架构:
                表现层:
                    web层,用来和客户端进行数据交互的,表现层一般会采用MVC的设计模式
                业务层:
                    处理公司具体的业务逻辑
                持久层:
                    用来操作数据库的

            MVC的设计模型:
                MVC的全称是Model View Controller 模型视图控制器,每个部分都各司其职
                    1.Model:数据模型,JavaBean(实体类)对象,用来进行数据封装的
                    2.View:视图,具体指的是我们Jsp,HTML,用来展示数据,给用户看的
                    3.Contrller:用来接收用户的请求,整个流程的控制器,用来进行数据校验等

SpringMVC工作原理:

  1、  用户发送请求至前端控制器DispatcherServlet。
        2、  DispatcherServlet收到请求调用HandlerMapping处理器映射器。
        3、  处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。
        4、  DispatcherServlet调用HandlerAdapter处理器适配器。
        5、  HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器)。
        6、  Controller执行完成返回ModelAndView。
        7、  HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet。
        8、  DispatcherServlet将ModelAndView传给ViewReslover视图解析器。
        9、  ViewReslover解析后返回具体View。
        10、 DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)。
        11、视图渲染结果会返回给客户端浏览器显示。

SpringMVC特点:

  1,是Spring框架的一部分,可以方便的利用Spring提供的功能

  2,灵活性强,易于其他框架继承

  3,提供了DispatcherServlet,使开发人员无需开发额外的控制器对象

  4,可自动绑定用户输入,并能正确的转换数据类型

  5,内置了常见的校验器,可以校验用户输入,如果不能通过,那么就会重定向到输入表单

  6,支持国际化,可以根据用户区域显示多国语言

  7,支持多种视图技术

  8,使用基于XML配置文件,在编译后,不需要从新编译应用程序

实例代码:

  1,导入jar包

  2,编写web.xml

在上述代码中<load-on-startup>元素和<init-param>元素都是可选的,如果<load-on-startup>元素的值为1,则在应用程序启动时会立即加载该Servlet;

如果<load-on-startup>元素不存在,则应用程序会在第一个Servlet请求时加载该Servlet。如果<init-param>元素存在并且通过其子元素配置了

SpringMVC配置文件的路径,则应用程序在启动时会加载配置路径下的配置文件;如果没有<init-param>元素配置,则应用程序会默认到WEB-INF目录下

寻找如下命名方式的配置文件:servletName-servlet.xml这个servletName指的是部署在web.xml中的DispatcherServlet的名称,

在上面web.xml中的配置代码即为Springmvc,- servlet.xml是配置文件的固定写法

  3,编写SpringMVC配置文件

首先定义了一个名称为"/firstcontroller"的Bean,该Bean会将控制器类FirstController映射到"/firstcontroller"请求中,

然后配置了处理器映射器BeanNameUrlHandlerMapping和处理器适配器SimpleControllerHandlerAdapter,其中处理器映射器用

于将处理器Bena中的name(url)进行处理器查找,而处理器适配器用于完成对FirstController处理器中的handlerRequest()方法的调

用,最后配置了视图解析器InternalResourceViewResolver来解析结果是,并将结果呈现给用户

注意:在Spring 4.0以后,就不需要配置处理器映射器BeanNameUrlHandlerMapping和处理器适配器SimpleControllerHandlerAdapter了

  4,编写Controller类

  5,jsp页面

原文地址:https://www.cnblogs.com/yz-bky/p/12675401.html