• spring MVC


    spring MVC

    •  MVC是什么

        MVC的全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,是一种软件设计典范。它是用一种业务逻辑、数据与界面显示分离的方法来组织代码,将众多的业务逻辑聚集到一个部件里面,在需要改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑,达到减少编码的时间。

    •  Spring MVC原理

       流程图:

        

      步骤解析:

    第一步:发起请求到前端控制器(DispatcherServlet)

    第二步:前端控制器请求HandlerMapping查找 Handler (可以根据xml配置、注解进行查找)

    第三步:处理器映射器HandlerMapping向前端控制器返回Handler,HandlerMapping会把请求映射为HandlerExecutionChain对象(包含一个Handler处理器(页面控制器)对象,多个HandlerInterceptor拦截器对象),通过这种策略模式,很容易添加新的映射策略

    第四步:前端控制器调用处理器适配器去执行Handler

    第五步:处理器适配器HandlerAdapter将会根据适配的结果去执行Handler

    第六步:Handler执行完成给适配器返回ModelAndView

    第七步:处理器适配器向前端控制器返回ModelAndView (ModelAndView是springmvc框架的一个底层对象,包括 Model和view)

    第八步:前端控制器请求视图解析器去进行视图解析 (根据逻辑视图名解析成真正的视图(jsp)),通过这种策略很容易更换其他视图技术,只需要更改视图解析器即可

    第九步:视图解析器向前端控制器返回View

    第十步:前端控制器进行视图渲染 (视图渲染将模型数据(在ModelAndView对象中)填充到request域)

    第十一步:前端控制器向用户响应结果

    •  RestFul风格

         restful是一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。

        把url的风格改变了:

          传统:http://localhost/test?a=1&b=2

          RestFul:http://localhost/test/1/2

        一定程度上,保证了安全性,没有暴露参数,也就是说参数1,2,如果不知道真正的api,你是不知道它们是不是参数值

        RestFul有GET、 POST、 PUT、 PATCH、 DELETE 等请求方式

    •  请求转发与重定向的区别
      • 请求转发只有一次请求一次响应,重定向有两次请求两次响应.
      • 请求转发浏览器的地址栏不会发生变化,重定向浏览器地址栏会发送变化,因为重新发送了一次请求.
    •  po、vo、pojo、dao、bo、 dto是什么

           po:persistent object 持久对象

        vo:value object 值对象 / view object 表现层对象

        pojo:plain ordinary java object 无规则简单java对象 

        • pojo持久化之后==〉po
        • pojo传输过程中==〉dto
        • pojo用作表示层==〉vo
        • po和vo都应该属于它。

          dao:data access object:数据访问对象

          bo:business object:业务对象

         dto:data transfer object:数据传输对象。

  • 相关阅读:
    设计模式01之 简单工厂模式(创建模式)
    UML系列05之 基本流程图
    UML系列04之 UML时序图
    UML系列03之 UML类图(二)
    UML系列02之 UML类图(一)
    LaTex in Markdown
    Ubuntu18.04 下的Gif录制工具
    Python3 与 C# 扩展之~基础衍生
    Python3 与 C# 扩展之~模块专栏
    Python3 与 C# 面向对象之~异常相关
  • 原文地址:https://www.cnblogs.com/lyt-echso/p/12943337.html
Copyright © 2020-2023  润新知