MVC模式

来源:互联网 发布:仿百度云盘源码 编辑:程序博客网 时间:2024/06/05 18:13
一、MVC设计模式
  MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,
  它把软件系统分为三个基本部分:
  模型(Model)、视图(View)和控制器(Controller)。   
  这样就可对软件的后期维护和扩展提供了方便,并且使程序的某些部分
  能够达到重用,也简化了程序,使程序更加的直观。


  视图(View):界面设计人员进行图形界面设计。可视部分。
              和用户交互(在web应用中就是网页)
     1>提供表单,用户录入数据
     2>将服务端的数据给用户显示的


  控制器(Controller):对请求进行处理,负责请求转发。调度角色。
              1>将客户端的请求交给谁处理(由谁处理请求)
     2>如何给客户端做出响应(由谁做出响应)


  模型(Model):程序员编写程序的应用功能、数据库管理。业务实现部分。
              1>业务功能的实现
     2>操作数据库


  将javaWeb项目按照MVC划分:
  1.V---jsp
  2.C---Servlet
  3.M---Service+Dao


二、javaWeb与MVC:
  javaWeb应用MVC经历了JSP Model1、JSP Model1二代、JSP Model2三个时期。


 1. JSP Model1第一代:
    JSP Model1是javaWeb早期的模型,它适合小型web项目,开发成本低。
    在Model1第一代时期,服务器端只有jsp页面,所有的操作都在jsp页面中完成,
    连访问操作数据库也在jsp页面中。也就是说所有的东西都在一起,耦合度极其高,
    极不利于软件后期的维护和扩展。


 2. JSP Model1第二代:
    JSP Model1第二代相对于第一代有所改进,把业务逻辑的操作内容放到了JavaBean中,
    而jsp页面负责显示以及请求调度的工作。虽然第二代比第一代耦合度较低了一些,
    但还是让jsp过了过多的工作,把视图工作和请求调度(控制器)的工作耦合在了一起。


 3. JSP Model2:
    JSP Model2模式已经可以清晰的看到MVC完整的结构了:
   1>JSP:视图层。主要用于和用户打交道。负责接收用户输入的数据,以及显
          示控制层转发的数据给用户。
   2>Servlet:控制层。负责指定合适的模型对象来处理业务逻辑,
          以及转发到指定的视图。
   3>JavaBean:模型层。完成具体的业务逻辑处理。


   JSP Model2适合多人开发的大型web项目,各司其职,互不干涉,有利于开发中的分工,
   有利于组件的重用。



 三、JavaWeb三层架构:

  JavaWeb的三层架构是javaWeb开发人员在MVC的基础上建立的适用于javaWeb开发的一种
  软件架构。所谓的三层是表述层(web层)、业务逻辑层(service层)、数据访问层(DB层)。
  我们从下往上对三个层次的功能进行解释:
  1>数据层(DB层):它的作用就是操作数据库,具体点就是实现数据的增、删、改、查操作。
    所有对数据库的操作都不能超出这个层面。而将对数据库的操作独立出来的好处,
    就是在以后的开发中有利于数据库的更换,而不需要去改动其它层面的代码。
  2>业务层(service层):它的作用是实现具体的业务功能,就是使用DB层的增删改查功能
    来完成业务逻辑。
  3>表述层(web层):与javaWeb相关的内容都在这个层面,如,servlet、jsp、servlet相关
    的API:request、response、session、servletContext等。而将这一层面独立出来的好
    处是能提高业务层代码的重用性,也就是说业务层的代码甚至可以应用到非web应用中。
    比如想将javaWeb软件转成c/s架构的软件,业务层和数据层就无需改动,只需将web层
    进行改动即可。
   
  
   总之,JavaWeb的三层架构就是业务层依赖于数据层,而web层又依赖于业务层。






 将一个javaWeb应用程序按照MVC划分:
 1>V:jsp
    1)提供表单,用户录入数据
    2)给用户显示信息
 2>C:servlet
    1)决定由谁去处理请求
    2)请求处理完后由谁给客户端做出响应
 3>M:javaBean(service+dao)
    1)业务功能的实现
    2)操作数据库


 将一个javaWeb项目按照javaWeb的三层架构划分:


 1>web层:
    jsp+servlet
    只能出现javaWeb的相关技术
 2>service层:
    业务功能的实现
 3>DB层:
    数据库的操作
    只能出现jdbc内容




项目的包层次体现javaWeb三层架构和MVC:


1.beans(domain entity)


2.dao(接口,只提供操作数据库的抽象方法)
   
    impl(dao接口的实现类,具体实现dao接口的所有的操作数据库的抽象方法)


3.service(业务类,实现业务功能)


4.web(web技术)


    servlet(放servlet)


5.utils(帮助类或工具类)
原创粉丝点击