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:数据传输对象。

 

posted @ 2020-05-23 16:53  echso。。  阅读(118)  评论(0编辑  收藏  举报