zoukankan      html  css  js  c++  java
  • springmvc入门详解

    • 先看下spring提供的完整架构图

    • 说一下常见的spring提供在各层次的技术:

      1.dao层有spring jdbc的支持,对jdbc的技术进行了封装

      2.orm的hibernate和ibatis,spring是提供了整合的一个支持

      3.Web包含了我们的struts和即将要讲解的springmvc

      4.core就是我们的spring容器

      springmvc跟spring是啥关系呢?springmvc是spring大框架其中的一个小框架或模块,也意味着后期整合的时候无需整合层(整合包)整合两者

    • 提醒一下,可能大家没有接触springmvc前对它的印象是覆盖三层web,service,dao,其实不是的,它是web层的一个框架,在web层体现了mvc的设计模式,跟整个项目的mvc分层没啥关系!mvc的设计模式它可以体现在整个项目,也可以设计在一个模块里,比如我们之前学的struts2,也是有体现该模式:strutsmvc

    • 为了让大家更能理解springmvc,我们先简单看下mvc设计模式,看图:

     spring,struts2,hibernate框架在mvc的应用:

    struts2中的mvc设计:

     

    springmvc的架构图:

     讲解架构流程之前,说一下适配器,适配器是需要跟特定的类或接口配对的,不同的适配器能够处理不同的类或接口,就很像变压器,根据目的的不同,将电压调整为适当的值!下面开始讲解架构各个部分以及流程:

      > DispatcherServlet是前端控制器,是整个springmvc的调度中心,主要是接收请求,请求别人处理数据,响应结果等作用(不需要程序员开发)

      >HandlerMapping是处理器映射器,它根据请求的url(Handler的url可通过在xml或注解来配置)在spring容器查找有没有符合url的方法的handler(不需要程序员开发)

      >HandlerExcutionChain,它可以理解为返回处理后的结果链,这个里面主要分两种:HandlerInterceptor处理器拦截器(一般有多个,在执行处理器之前进行预处理和后处理操作),Handler处理器(不需要程序员开发)

      >HandlerAdapter是处理器适配器,用来执行Handler处理器,不同的适配器能处理不同的处理器(不需要程序员开发)

      >Handler是处理器,它是我们主要写代码的地方,类似struts2时候的action,javaweb时的servlet,在项目的分层中它属于controller层,它必须按照适配器的指定规范来写,否则它就不是一个处理器(需要程序员开发)

      >ModelAndView是springmvc的一个底层对象,我们从数据库获取的数据以及视图的信息(url路径)存储在该对象中(需要我们创建)

      >ViewResolver是视图解析器,将ModelAnDView对象中的视图信息解析成一个View对象(其实就是拿到JSP,FrameMarker等视图的路径并解析成一个对应的JSP对象等或者说根据路径将对应的视图加载到内存当中形成一个view对象)(不需要程序员开发)

      >view是一个接口,支持不同的view类型,包含jsp,pdf等视图,不同类型的view需要不同的ViewResolver来解析(不需要程序员开发,但是jsp页面啥的必须得自己写,只是对象不写而已)

    上面对各个对象进行一个解释后,准备讲解流程:

      1.请求发送到我们的服务器的第一道大门 DispatcherServlet

      2. DispatcherServlet调用HandlerMapping处理器映射器获取Handler处理器

      3.HandlerMapping返回一个执行链,包含处理器拦截器和处理器对象

      4.DispatcherServlet拿到Handler之后,交给HandlerAdapter去执行

      5.HandlerAdapter执行Handler

      6.Handler返回一个modelAndView对象,通过对象名可知对象中包含数据库和视图的信息

      7.HandlerAdapter返回modelAndView对象给DispatcherServlet

      8.DispatcherServlet把modelAndView交给ViewResolver视图解析器去解析该对象,说白了就是提取jsp等视图url并解析成一个view对象

      9.view对象会自己的方法进行渲染,其实是将modelAndView里面的model数据提取放到request域中,视图从request域中拿到数据形成一个完整的静态页面html

      10.返回给DispatcherServlet一个View对象

      11.响应html给客户端

  • 相关阅读:
    数组元素按指定的位置排序
    git修改历史提交的备注信息
    js常用遍历理解
    async await和promise的区别,和使用方法
    js检测邮箱格式,正则检测邮箱格式
    前端,es6中的promise异步方法,及用的场景
    JMter 压力测试工具简单使用及介绍
    Vue Config
    vue 文件上传
    Windows Redis集群搭建简单版
  • 原文地址:https://www.cnblogs.com/ibcdwx/p/12956216.html
Copyright © 2011-2022 走看看