【JavaWeb】MVC模式和JSP开发模型

MVC模式和JSP开发模型

  • 第一节 MVC模式简介
    • 1.1 MVC概念
    • 1.2 MVC模式详解
    • 1.3 MVC高级框架应用
    • 1.4 MVC和三层架构的区别
  • 第二节 JSP开发模型
    • 2.1 JavaWeb经历两个时期
      • 2.1.1 JSP Model1
      • 2.1.2 JSP Model2
    • 2.2 基于MVC的三层架构的实现

第一节 MVC模式简介

1.1 MVC概念

首先我们需要知道MVC模式并不是javaweb项目中独有的,MVC是一种软件工程中的一种设计模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller),即为MVC。它是一种软件设计的典范,最早为Trygve Reenskaug提出,为施乐帕罗奥多研究中心(Xerox PARC)的Smalltalk语言发明的一种软件设计模式。

1.2 MVC模式详解

虽然MVC并不是Java当中独有的,但是现在几乎所有的B/S的架构都采用了MVC框架模式。

  • 控制器Controller:控制器即是控制请求的处理逻辑,对请求进行处理,负责请 求转发和重定向;
  • 视图View:视图即是用户看到并与之交互的界面,比如HTML(静态资源),JSP(动态资源)等等。
  • 模型Model:模型代表着一种企业规范,就是业务流程/状态的处理以及业务规则的规定。业务流程的处理过程对其他层来说是不透明的,模型接受的请求,并返回最终的处理结果。业务模型的设计可以说是MVC的核心。

1.3 MVC高级框架应用

MVC模式被广泛用于Java的各种框架中,比如Struts2、spring MVC等等都用到了这种思想。

Struts2是基于MVC的轻量级的web应用框架。基于MVC,说明基于Struts2开发的Web应用自然就能实现MVC,也说明Struts2着力于在MVC的各个部分为我们的开发提供相应帮助。

1.4 MVC和三层架构的区别

同样是架构级别的,相同的地方在于他们都有一个表现层,但是他们不同的地方在于其他的两个层。

在三层架构中没有定义Controller的概念。这是最不同的地方。而MVC也没有把业务的逻辑访问看成两个层,这是采用三层架构或MVC搭建程序最主要的区别。当然了。在三层中也提到了Model,但是三层架构中Model的概念与MVC中Model的概念是不一样的,“三层”中典型的Model层是由业务逻辑与访问数据组成的。而MVC里,则是以实体类构成的。

MVC和三层架构的区别:

MVC:
   M 即Model(模型层),主要负责处理业务逻辑以及数据库的交互

   V 即View(视图层),主要负责显示数据和提交数据

   C 即Controller(控制层),主要是用作辅助捕获请求并控制请求转发

三层:
   UI界面层

   BLL业务逻辑层

   DAL数据访问层

区别:
   1.  三层是基于业务逻辑来分的,而mvc是基于页面来分的
   2.  MVC模式是一种复合设计模式,一种解决方案
       三层是种软件架构,通过接口实现编程
   3.  三层模式是体系结构模式,MVC是设计模式
   4.  三层模式又可归于部署模式,MVC可归于表示模式

第二节 JSP开发模型

2.1 JavaWeb经历两个时期

2.1.1 JSP Model1

JSP Model1是JavaWeb早期的模型,它适合小型Web项目,开发成本低!Model1第一代时期,服务器端只有JSP页面,所有的操作都在JSP页面中,连访问数据库的API也在JSP页面中完成。也就是说,所有的东西都耦合在一起,对后期的维护和扩展极为不利。
【JavaWeb】MVC模式和JSP开发模型_第1张图片

JSP Model1的优化(Model1第二代)

JSP Model1优化后有所改进,把业务逻辑和数据访问的内容放到了JavaBean(狭义JavaBean:实体类,广义JavaBean:实体类,dao,service,工具类)中,而JSP页面负责显示以及请求调度的工作。虽然第二代比第一代好了些,但还让JSP做了过多的工作,JSP中把视图工作和请求调度(控制器)的工作耦合在一起了。

【JavaWeb】MVC模式和JSP开发模型_第2张图片

2.1.2 JSP Model2

JSP Model2模式已经可以清晰的看到MVC完整的结构了。

JSP:视图层,用来与用户打交道。负责接收数据,以及显示数据给用户;

Servlet:控制层,负责找到合适的模型对象来处理业务逻辑,转发到合适的视图;

JavaBean:模型层,完成具体的业务工作,例如:开启、转账等。

【JavaWeb】MVC模式和JSP开发模型_第3张图片

小结:这就是javaweb经历的两个时期,JSP Model2适合多人合作开发大型的Web项目,各司其职,互不干涉,有利于开发中的分工,有利于组件的重用。但是,Web项目的开发难度加大,同时对开发人员的技术要求也提高了。

2.2 基于MVC的三层架构的实现

虽然MVC把程序分成三部分,每个部分负责不同的功能,但是这只是逻辑的分离,实际代码并没有真正分离,特别是Model(包括业务、数据访问和实体类、工具类等)部分的代码,为了增强代码的维护性和降低代码耦合性,需要把代码分层管理,于是就有了三层架构:

分别是:web层(表示|界面层)、service层(业务逻辑层)、dao层(数据访问层)

【JavaWeb】MVC模式和JSP开发模型_第4张图片

web层对应MVC中的Servlet和JSP

其他层都属于MVC中的Model

【JavaWeb】MVC模式和JSP开发模型_第5张图片

案例演示:

 	web层
        com.web.servlet
        jsp页面放在 WebContent 或  WEB-INF
        
    Service层
        com.service  放服务层接口
        com.service.impl  放服务层实现
        
    Dao  层
        com.dao   方法 dao接口
        com.dao.impl  放dao实现
        
    
    实体类  
        com.domain   | com.beans  | com.entity | com.pojo
    
    工具类 
        com.commons  | com.utils
        

你可能感兴趣的:(JavaWeb,MVC+分页)