MVC设计模式JavaWeb实现

JSP开发模式

jsp开发模式的发展

1.模式1:(适合小型项目的技术的开发)

a.第一版本号。纯jsp(封装数据。处理数据,显示数据)

b.第二版本号,Jsp+JavaBean.

jsp:收集数据,显示数据

JavaBean:封装、处理

2.模式2:servlet+Jsp+JavaBean(是mvc在java中的详细的实现,是java技术实现的详细的内容)

a.servlet:负责协调jsp和javabean,获得数据,处理数据(业务逻辑),封装到javabean中,选择jsp去显示数据。

b.jsp:显示

c.JavaBean:封装和简单处理

思想:业务处理与显示数据相分离。

软件设计模式

1.MVC软件设计模式(和java无关)

是一种分离业务逻辑和显示界面的设计方法。

M:model模型

V:view视图

C:Controller控制器



watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHlta2luZw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >

2.对于javaweb开发的mvc模式:

servlet(controller)+jsp(view)+javabean(model)

那么经典的三冊架构的体系图例如以下:

达到这样的经典的三层架构以后。javaweb的架构已经非常不错了。可是从软件project角度分析,上述架构还是存在问题。

那么看一下上述架构的使用。

在中心的黄色部分:也就是服务端部分。层与层之间的调用关系。

举一个样例:

web层:UserServlet.java类

service层:UserService类

dao层:UserDao类

javaBean:user

那么层与层之间的调用关系就该是这样:

在UserServlet.java中调用UserService。

那么调用的方式仅仅能是在UserServlet类中去创建UserService的对象。

例如以下:

class    UserServlet{

UserServcie userService=new UserService();

//调用userService的相关方法进行业务逻辑的操作

。。

}

同理:UserService调用UserDao的时候,也有类似上述的代码。

有上述的分析得出结论1:

1.那么上述代码之间的层与层之间的关系就非常紧密。

是违背了软件project的设计思想的。

软件project要求,模块与模块之间的耦合式越低越好。一句经典的软件project设计的话是这种。

“高内聚。低耦合”。

同一时候上述的dao层,我们看一下既有对xml的操作,也有对db的操作,甚至还有很多其它。

得出了结论2:

2.上述架构。同一时候违背了“高内聚。低耦合”中的高内聚的思想。

于是上面的架构体系又有了例如以下的增进:

对于上述的架构图进行分析:

看service层。dao层

1.解决dao层的内聚问题,把xmlDao和dbDao进行分离。

2.对dao层抽取一个共性的接口出来。Dao接口

分析:之前的架构中,service层调用dao层是这种。

UserService中须要写这种代码:XmlDao xmlDao=new XmlDao()//此时没有接口

加上接口以后,Dao dao=new XmlDao();

3.加入工厂

上面的写法变成:Dao dao=Factory.getXmlDao();

那么工厂怎样调用dao层的相关方法呢?假设直接调用,出现的结果是尽管攻克了service层和dao层之间的耦合关系,可是事实上仅仅只是演变

成了工厂和dao层之间的高耦合。

那么增加了xml技术,工厂通过读取xml文件。然后利用java的反射,去创建所需创建的对象就ok了。

而在xml中仅仅要提供了类的全路径。然后做相关配置,目的是方便工厂去读取xml文件去创建对象。

4.加入配置文件。

配置文件不过字符串。和dao层之间没有耦合关系。

总结:对于第三种架构(高内聚。低耦合),便于维护,便于扩展。

为什么便于扩展,举个样例:比方。dao层中。又有了新的持久化技术,service层实际上无所知道不知道。仅仅要改动配置文件。

工厂就会去有

对应的操作。这样一来,是不是便于维护和扩展。

上面了。我们看了service层。dao层,通过接口,工厂类,配置文件的方式实现了解耦。

同理,web层,service层也能够通过同样的方式的进行解耦。

在上图中没有全然体现。

随着技术的发展。出现了非常多mvc的框架比方struts+spring+hibernate/springMvc.

在刚出现这些框架的时候,基本上都是通过上述方式进行解耦。

用过框架的人都知道,框架多基于配置文件,反射原理,内省等。

再发展了现在,搞架构的那些人,认为。写配置文件也非常费劲。就有了现在的基于注解模式的框架设计。

可是。上述的架构思想,和演变过程,是后期框架技术的源头哦。

后期,我也会对JavaWeb项目开发过程的框架技术结合MVC设计模式做更深入的分析。

通常javaweb+框架技术的开发,被人们称

作java企业级开发。

也就比較的流行的J2EE/JAVAEE.

补充:在javaweb项目的基于MVC软件设计模式,通常会进行例如以下分包结构:

使用分包描写叙述结构

com.ghsy ,公司域名倒写(安徽安庆高恒塑业有限责任公司)

com.ghsy.项目名称

com.ghsy.项目名称.dao                   
dao接口

com.ghsy.项目名称.dao.impl              
dao实现类

com.ghsy.项目名称.service               
service接口

com.ghsy.项目名称.service.impl          
service实现类

com.ghsy.项目名称.web.servlet           
servlet处理类

com.ghsy.项目名称.web.filter            
过滤器处理类

com.ghsy.项目名称.web.listener          
监听器处理类

com.ghsy.项目名称.domain                
javabean 封装数据(bean)

com.ghsy.项目名称.utils                 
工具类

com.ghsy.项目名称.exception             
自己定义异常

com.ghsy.项目名称.constant              
java常量 Xxx.NAME

/WEB-INF/  jsp页面,安全

* 使以请求转发显示器jsp页

版权声明:本文博主原创文章。博客,未经同意不得转载。

时间: 2024-10-12 15:54:31

MVC设计模式JavaWeb实现的相关文章

web day13 JSTL标签库(c标签,自定义标签),MVC设计模式,JavaWeb经典三层框架

JSTL 1. jstl的概述 *apache的东西,依赖EL * 使用jstl需要导入jstl1.2.jar * 四大库: > core:核心库,重点 > fmt:格式化:日期.数字 > sql:过时 > xml:过时 2. 导入标签库 *jar包 * 在jsp页面中:<%@taglib prefix="前缀" uri="路径"%> ---------------------- core --> c标签! 1. out和s

JavaWeb之MVC设计模式

时间:2016-11-26 16:22 --MVC MVC模式(Model - View - Controller)是软件工程中的一种架构模式,把软件系统分为三个基本部分:        模型(Model).视图(View).控制器(Controller) MVC模式最早为Trygve Reenskaug提出,为施乐帕罗奥多研究中心(Xerox PARC)的Smalltalk语言发明的一种软件设计模式. MVC对程序的后期维护和扩展提供了方便,并且使程序某些部分的重用提供了方便,而且MVC也使程

浅谈javaweb三大框架和MVC设计模式

一.MVC设计模式 1.MVC的概念 首先我们需要知道MVC模式并不是javaweb项目中独有的,MVC是一种软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控制器(Controller),即为MVC.它是一种软件设计的典范,最早为Trygve Reenskaug提出,为施乐帕罗奥多研究中心(Xerox PARC)的Smalltalk语言发明的一种软件设计模式. 2.MVC的详解 虽然MVC并不是Java当中独有的,但是现在几乎所有的B/S的架构都

javaweb三大框架和MVC设计模式

javaweb三大框架和MVC设计模式 转载,原文请见https://blog.csdn.net/sunpeng19960715/article/details/50890705 一.MVC设计模式 1.MVC的概念 首先我们需要知道MVC模式并不是javaweb项目中独有的,MVC是一种软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控制器(Controller),即为MVC.它是一种软件设计的典范,最早为Trygve Reenskaug提出,为

MVC设计模式((javaWEB)在数据库连接池下,实现对数据库中的数据增删改查操作)

设计功能的实现: ----没有业务层,直接由Servlet调用DAO,所以也没有事务操作,所以从DAO中直接获取connection对象 ----采用MVC设计模式 ----采用到的技术 .MVC设计模式,JSP,Servlet,POJO .数据库使用mysql .数据库连接池需要使用C3P0数据库连接池 .页面上的提示需要使用jQuery ----技术难点 .多个请求如何使用一个Servlet .如何模糊查询 .如何在创建和修改的情况下,验证用户信息是否已被使用,并给出提示 ---------

python mvc设计模式(一)

一.代码组织(目录结构) 二.mvc概述 MVC设计模式即MVC框架. MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑和数据显式分离的方法组织代码,将业务逻辑被聚集到一个部件里面,在界面和用户围绕数据的交互能被改进和个性化定制的同时而不需要重新编写业务逻辑.MVC被独特的发展起来用于映射传统的输入.处理和输出功能在一个逻辑的图形化用户界面的结构中. 三.代码 1.数据 #cod

Java Web开发中MVC设计模式简介

一.有关Java Web与MVC设计模式 学习过基本Java Web开发的人都已经了解了如何编写基本的Servlet,如何编写jsp及如何更新浏览器中显示的内容.但是我们之前自己编写的应用一般存在无条理性,对于一个小型的网站这样的编写没有任何问题,但是一但我们需要编写大型的web工程的话,我们现有的编写模式会造成web应用的可扩展性较差,而且一但出现问题不能准确的定位出问题出在哪里. Java是一门应用设计模式比较广泛的语言.目前主流提出的23种设计模式均可在Java语言编写的程序中所应用.目前

转---MVC设计模式详解

MVC(Model View Controller)模型(model)-视图(view)-控制器(controller):MVC本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器.使用MVC是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式.比如一批统计数据你可以分别用柱状图.饼图来表示.C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新,从例子可以看出MVC就是Observer设计模式的一个特例.MVC如何工作MVC是一个设计模式,它强制性

【原创翻译】认识MVC设计模式:web应用开放的基础(基础篇)

原文地址:http://www.larryullman.com/2009/10/08/understanding-mvc/ 翻译:shadowmydx 转帖请注明 最近,我计划写一个系列关于自己在过去几个月使用的Yii框架(shadowmydx:基于PHP5的一个web开发 框架,详情自行google)的文章.但在一切开始以前,我认为首先还是需要先介绍一下MVC设计模式: 模型-视图-控制器.MVC模式(30年前就有鸟)已经成为了框架以及许多各式各样的应用的首选.MVC模 式主要着眼于分离应用的