一、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(帮助类或工具类)
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(帮助类或工具类)