• SpringMVC概述


    MVC设计模式

    什么是设计模式

    设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。

    使用设计模式的目的:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。

    设计模式使代码编写真正工程化;

    设计模式是软件工程的基石脉络,如同大厦的结构一样。

    设计模式就是一种模子,经过多年实践锤炼形成一套行之有效的完成某个特定任务的步骤和方式。

    例如:西凤酒的酿造过程,酿造工序,前后不能变,温差不能变,这样做就是好喝,稍微改动就变味道了。

    再如,北京烤鸭,就是那样做,就是那些调料腌制,变量配比,味道口感就是不如人家。

    MVC设计模式

    MVC设计模式是一种通用的软件编程思想

    在MVC设计模式中认为, 任何软件都可以分为三部分组成:

    (1)控制程序流转的控制器(Controller

    (2)封装数据处理数据的模型(Model

    (3)负责展示数据的视图(view

    并且在MVC设计思想中要求一个符合MVC设计思想的软件应该保证上面这三部分相互独立,互不干扰,每一个部分只负责自己擅长的部分。

    如果某一个模块发生变化,应该尽量做到不影响其他两个模块。这样做的好处是,软件的结构会变得更加的清晰,可读性强。有利于后期的扩展和维护,并且代码可以实现复用。

    Servlet的缺点

    1、通常情况下,一个Servlet类只负责处理一个请求,若项目中有成百上千个请求需要处理,就需要有成百上千个Servlet类,这样会使得项目中Servlet类的个数暴增;

    2、在Servlet3.0版本之前,每一个Servlet都需要在web.xml文件中至少做八行配置信息,配置内容多且繁琐。当Servlet特别多时,web.xml配置量太多,不利于团队开发;

    3、当通过客户端提交参数到服务器,通过Servlet进行接收时,无论数据本身是什么格式,在Servlet中一律按照字符串进行接收,后期需要进行类型转换,复杂类型还需要特殊处理,特别麻烦!

    String value = request.getParameter(String name);
    

    4、servlet具有容器依赖性,必须放在服务器中运行,不利于单元测试;

    ...

    SpringMVC简介

    Springmvc是spring框架的一个模块,spring和springmvc无需中间整合层整合

    Springmvc是一个基于mvc的web框架

    spring执行原理

    1. 用户发送请求 至 前端控制器(DispatcherServlet);

      提示:DispatcherServlet的作用:接收请求,调用其它组件处理请求,响应结果,相当于转发器、中央处理器,是整个流程控制的中心

    2. 前端控制器(DispatcherServlet)收到请求后调用处理器映射器(HandlerMapping)

      处理器映射器(HandlerMapping)找到具体的Controller(可以根据xml配置、注解进行查找),并将Controller返回给DispatcherServlet;

    3. 前端控制器(DispatcherServlet)调用处理器适配器(HandlerAdapter)。处理器适配器经过适配调用具体的Controller;(Controller--> service --> Dao --> 数据库)

      Controller执行完成后返回ModelAndView,

      提示:Model(模型数据,即Controller处理的结果,Map) View(逻辑视图名,即负责展示结果的JSP页面的名字)

      处理器适配器(HandlerAdapter)将controller执行的结果(ModelAndView)返回给前端控制器(DispatcherServlet);

    4. 前端控制器(DispatcherServlet)将执行的结果(ModelAndView)传给视图解析器(ViewReslover)

      视图解析器(ViewReslover)根据View(逻辑视图名)解析后返回具体JSP页面

    5. 前端控制器(DispatcherServlet)根据Model对View进行渲染(即将模型数据填充至视图中);

      前端控制器(DispatcherServlet)将填充了数据的网页响应给用户。

      其中整个过程中需要开发人员编写的部分有ControllerServiceDaoView;

  • 相关阅读:
    《机器学习》周志华 习题答案8.5
    《机器学习》周志华 习题答案8.3
    《机器学习》周志华 习题答案7.3
    《机器学习》周志华 习题答案6.2
    《机器学习》周志华 习题答案4.3
    Python使用wxPython、py2exe编写桌面程序-乾颐堂
    python生成验证码,文字转换为图片-乾颐堂
    python使用wmi模块获取windows下的系统信息监控系统-乾颐堂
    Python图像处理库:Pillow 初级教程-乾颐堂
    python的metaclass浅析-乾颐堂
  • 原文地址:https://www.cnblogs.com/zpKang/p/13187481.html
Copyright © 2020-2023  润新知