从开始学Java Web到现在,使用的J2EE架构一步一步的在改变,从最简单的到越来越复杂,刚开始都是完全就照着每个架构的形式去开发项目,很少自己会想为什么用这样的架构好?好在哪里?现在学了这么久,也做了一些项目,回过头来仔细去思考这一个一个的架构,顿时发现了其中的道理。当你使用一种架构时,发现架构存在某个明显不足的地方,这时候,就应该去思考有什么办法去解决,这样子不断改善,也就使架构不断的改善升级。
什么是J2EE架构?
J2EE架构就是我们开发企业项目系统时使用基于J2EE技术构建的软件架构,相当于给系统定了个外型,剩下的只要按照这个外型去具体实现它的功能。这样做的目的就是为了提升开发的效率以及一个好的架构也会大大提升我们软件的质量。
(一)一层架构模式
一层架构模式是最简单的方法,就是直接使用JSP进行所有功能的开发,JSP既负责显示结果与用户交互,并且也负责跳转控制、逻辑业务的处理。如下图所示:
这种模式的好处就是直接容易理解,逻辑简单,开发速度快,但当功能复杂的时候,页面就会被塞很多java代码,如JDBC代码,逻辑代码,可读性会很差,并且代码无法重用。
(二)两层架构模式 Model 1
为了解决上一个架构存在的问题:可读性差,代码无法重用。现在我们不要忘了Java有封装的特性,而且我们页面可读性差就是因为页面中插入了大量的java代码,而且当我们写多了一层架构的项目时会发现,在页面中的java代码很多都是相同的重复代码,都为了实现某一个功能,如JDBC代码,所以现在我们可以将这些Java代码抽取出来放在JavaBean(其实就是个java类)中,封装成一个一个的业务方法,供JSP页面来调用,如果需要实现相同功能的只需要写一遍代码就可以多次调用,也就是代码可重用性也相对提高了。
这种模式下依然存在着很明显的缺点:jsp页面除了显示内容外还要负责控制页面跳转,当项目复杂时,页面与页面之间的流向会变得混乱,当改动某一页面时可能影响到与之相关的很多页面;还有就是程序逻辑代码的开发与页面设计纠缠在一起,这样既不便于分工合作,也不利于代码的重用。
(三)三层架构模式 Model 2(MVC模式)
为了解决Model 1的缺点,而Model 1的缺点就在与页面设计还没有与程序逻辑代码真正分离,所以我们要继续想办法把他们分离开,JSP用来显示页面,这就需要有一个专门来负责接收页面请求并将处理结果返回给合适的页面。它就充当了一个“控制器”(Controller),这个控制器一般就由Servlet来实现,因为Servlet的特性恰好能完美实现这样的效果。
这样一来,JSP变成一个单纯完成显示内容的显示层(Viewer),Servlet作为控制层(Controller),而被我们已经独立出来的事务逻辑(JavaBean),称为Model层,就构成了MVC模式,该模式至今被广泛应用,因为为我们的开发与维护提供了巨大的便利。
(四) 多层架构模式
MVC模式虽然已经很经典,但在实际项目开发中,我们就会发现,在我们的Model层中存在大量的重复代码,就是JDBC代码,可以对它继续拆分、拆分成服务层(Service)与数据操作(DAO),服务层专门根据业务需要,调用数据底层对数据库进行操作,数据操作负责对数据库进行操作;由于这两层之间会涉及到数据的传递,数据量可能会比较多,所以在他们中间加上一个专门存储数据库的持久对象的存储对象(DTO)
J2EE的多层架构中的每一层还可以使用一些开源框架进行组合,现在比较流行的就是Struts、Spring、Hibernate等框架,他们都各自作用在某些层,但都是基于MVC这个基础架构来的,所以掌握好MVC很重要。
相关推荐
J2EE应用的五层架构模型J2EE应用的五层架构模型J2EE应用的五层架构模型
行,因此文中设计了一个基于J2EE架构的网上购物系统。根据J2EE架构的多层应用程序方案和网上购物系统的特点,系 统采用以Web为中心的应用程序方案。该系统可以提高企业的整体运营速度,给企业带来巨大的财富。
模型-视图-控制(model-view-control,简称MVC)结构是目前最常见的J2EE应用所基于的体系结构,MVC主要适用于交互式的Web应用,尤其是存在大量页面及多次客户访问及数据显示;相比较而言,一个工作流体系结构更多应用...
通过此资源,你可以了解许多重要的J2EE架构的话题,并且能够扩展和修改这个简单的方法来解决自己特有的业务问题。在商业世界里,我们使用Java2企业版(J2EE)解决业务问题、开发商业软件或者提供转包服务。如果一家...
传统的客户机/服务器计算方式已经不能适应实际应用的需要,而J2EE架构正是适合Internet上的Web计算特点而产生和发展的,与传统的客户机/服务器计算模型相比,J2EE架构采用组件的思想,从而带来了开发、维护和使用时的...
基于J2EE平台的Struts框架技术已成为开发Web应用的主流技术,而Struts框架在模型部分的实现并不理想,采用JDBC来连接数据库存在复杂编程、层间高耦合和难以维护等问题,提出了Struts和Hibernate框架整合。应用ORM技术...
分析了基于Struts框架的J2EE架构中实现对象持久性的局限性,从中分离出对象持久层,并将Hibernate这个面向对象的轻量级对象持久性技术集成到该架构中;应用DAO设计模式在业务逻辑层与持久层之间设计了多源数据访问...
设计模式在当前的工程应用中越来越广泛 ,MVC 是软件开发中 的一种重 要的设计 模式 , J2EE 则是... 并构建了一个简 单、实用的 Web 应用框架 , 达到了视图 、控制 、模型的分层 , 成功实现了 J2EE 平台上的 MVC 架构 。
获取服务器的参数和属性资源,简单的使用了J2EE架构进行B/S结构的部署。 示例: // a)取硬盘已有的分区及其详细信息(通过sigar.getFileSystemList()来获得FileSystem列表对象,然后对其进行编历): public void ...
就基于JAVA模型一视窗一控制器(MVC)三层体系结构与利用ArcIMS建,-y地图发布服务、ArcSDE作为空间数据服务结合SQL Seer关系行数据库集成开发WebGIS应用进行了较详细的分析,并对比其它方法简要分析了基于J2EE架构...
4、对象设计在架构规范的指导下,...规格说明应该足够详细使得和模型图结合时,它可以提供所有必须的编码信息。在许多自动化软件生产过程中,我们可以从面向对象图生成代码框架。图5和6说明了对一些领域对象的高层和详
基于 WFMC的工作流管理系统标准模型以及 OMG的工作流对象实现模型,进行了基于J2EE架构的工作流引擎的模块设计、数据库设计、对象设计及实现。
基于J2EE 架构的教学管理信息系统采用B/S 模式的三 层体系结构,分别为客户层、应用程序服务层和数据库层。客户 层即Browser 端主要包括学生入口,教师入口和教务管理人员入 口,应用程序服务层和数据库层即Server ...
随着J2EE的快速普及,越来越多的开发人员都想编写基于J2EE架构的分布式的企业级应用程序。为了降低开发难度,J2EE提供的基于组件的,分层的分布式应用模式,使具有可伸缩,可扩展和易维护等优点。利用J2EE,可以...
分析和展现JBoss架构模型有助于我们了解其内部行为并帮助我们创建一个精确的最终性能模型。在这个项目中,我们分析JBoss应用服务器架构的四个特殊部分,JBoss EJB 容器、JBossNS、JBossTX以及JBossCMP,逆转工程工具...
摘要基于目前数字化校园系统中教学评价模块的功能单一、模型固定和重复开发等问题,作者给出了一个通用的教学评价系统,该系统的主要功能流程、系统的体系结构和实现技术,以及所用到的两种重要算法:AHP法和BP神经...