Java-开发模式

Java Web开发方案有多种,这里列举一些经典的开发模式进行横向比较

JSP+JAVABEAN开发模式:
    特点:该模式将业务逻辑与页面表现进行分离,在一定程度上增加了程序的可调试性和维护性。
    缺点:页面将控制与显示集于一身。
    结论:简单,适合小型项目的快速构建与运行。

JSP+Servlet+JavaBean开发模式:
    特点:JSP作为视图,来表现页面;Servlet作为控制器,控制程序的流程并调用业务进行处理;JavaBean封装了业务逻辑。遵循了MVC设计模式。
    缺点:没有统一的开发框架导致开发周期长。

Struts开发方案:
    特点:成熟的MVC开发框架。
    构成:控制器:ActionServlet 组件:Struts框架的中央控制器。
                  RequestProcessor 组件:每个子模块都具有的请求处理器。
                  Action 组件:业务代理,它将调用模型进行一项具体的业务逻辑处理。
              视图:主要由JSP页面构成
                        还包括HTML文档;标准标签库(JSTL)和Struts标签库;
                        JavaScript脚本和CSS样式;
                        多媒体文件;
                        消息资源文件;
                        ActionForm类。
              模式:通常在Structs中使用其他模型组建来实现业务逻辑。
                       如:JavaBean技术、EJB技术、Hibernates设计模式。
结论:对于一些大型的项目,Struts框架会提高开发效率,并对后期的维护有很大好处。

Spring开发方案:
    特点:拥有IOC和AOP两种先进的技术为基础,完美的简化了企业级开发的复杂度,
             是一个理想的Web程序框架。
    构成:核心模块:实现了IOC模式,包含BeanFactory类负责对JavaBean的配置与管理。
             上下文模块:继承BeanFactory类,
                                添加了事件处理、国际化、资源装载、透明装载以及数据校验等功能,
                                提供了框架式的Bean访问方式和很多企业级功能。
                                如:JNDI访问、支持EJB、远程调用、继承模板框架、E-mail和定时任务调度等。
              AOP模块:提供了用标准Java语言编写的AOP框架,
                               使应用程序抛开EJB的复杂性,但拥有传统EJB的关键功能。
              DAO模块:提供了JDBC的抽象层,并且提供了对声明式事物和编程式事务的支持。
              Web模块:建立在上下文模块基础之上,提供了Servlet监听器的Context和Web应用的上下文。
                               对现有的Web框架如:JSF、Tapestry、Struts等提供了集成。
              O/R映射模块:提供了对现有ORM框架的支持如Hibernate。
              Spring MVC框架:建立在核心模块之上,嫩够适应于多种多视图、模板技术、国际化和验证服务,
                                           实现控制逻辑和业务逻辑清晰的分离。

Struts+HIbernate开发方案:
    特点:利用Struts的MVC设计模式,与Hibernate持久化对象组成的开发方案。

Struts+Spring+Hibernate开发方案:
    特点:Struts负责表示层,
              Spring负责逻辑层的业务,
              Hibernate持久层中数据库的操作,组成的开发方案。

java 开发模式的更多相关文章

  1. 鸿蒙Java开发模式11:鸿蒙图片裁剪功能的实现

    鸿蒙入门指南,小白速来!从萌新到高手,怎样快速掌握鸿蒙开发?[课程入口] 目录: 1. 鸿蒙版图片裁剪功能效果展示 2.Java代码实现 3.裁剪工具类实现 4.<鸿蒙Java开发模式>系 ...

  2. 浅析Java开发模式—Model1、Model2和三层

    "解耦"的思想一直是我们倡导的,但在实际项目中怎样去做?这是需要我们去好好思考的.下面以Model1.Model2.三层为切入点,对比下去了解解耦的思想. Model1 使用JSP ...

  3. java开发模式学习

    1.瀑布模式 这种模式适合小项目,一层层进行编码,没有规模的设计, 2.原型模式 先做模板给客户在做实体 3.面向对象模式 用面向对象的思想进行开发 4.螺旋模式 从内到外一层层开,

  4. web开发模式小结:页面乱码和跳转

    本文由付老师总结书写 java开发模式: (1)第一种开始模式:javaBean+jsp : 优点:可以为web程序在jsp中减少java代码量 适用于该开发模式的jsp的动作元素:<jsp:u ...

  5. java web学习总结(二十九) -------------------JavaBean的两种开发模式

    SUN公司推出JSP技术后,同时也推荐了两种web应用程序的开发模式,一种是JSP+JavaBean模式,一种是Servlet+JSP+JavaBean模式. 一.JSP+JavaBean开发模式 1 ...

  6. Java开发web的几种开发模式

    Java Web开发方案有多种可供选择,这里列举一些经典的开发模式进行横向比较,为Java Web的开发模式选择提供参考.除此之外还有好多方案(如Tapestry和Wicket等等)并不了解,这里就不 ...

  7. Java web MVC开发模式入门感悟

    当我进行第一个完整的java web项目的开发时,对以前所学的Java web知识体系有了一个清晰的进阶认识.我觉得非常有必要对此进行必要的总结. MVC,意指model(数据持久层)+viewer( ...

  8. Java Web应用的开发模式

    一.概述 从互联网诞生的第一天起,web从一个简单的静态页面,发展到今天五花八门.令人眼花缭乱的复杂应用,大到企业级的web应用系统,小到简单的SPA管理系统.在硬件性能提升的同时,通过各种技术实现了 ...

  9. java web几种开发模式(转)

    Java Web开发方案有多种可供选择,这里列举一些经典的开发模式进行横向比较,为Java Web的开发模式选择提供参考.除此之外还有好多方案(如Tapestry和Wicket)并不了解,这里就不列举 ...

随机推荐

  1. 使用nginx反向代理,一个80端口下,配置多个微信项目

    我们要接入微信公众号平台开发,需要填写服务器配置,然后依据接口文档才能实现业务逻辑.但是微信公众号接口只支持80接口(80端口).我们因业务需求需要在一个公众号域名下面,发布两个需要微信授权的项目,怎 ...

  2. OpenGL ES 3.0: 图元重启(Primitive restart)

    [TOC] 背景概述 在OpenGL绘制图形时,可能需要绘制多个并不相连的图形.这样的情况下这几个图形没法被当做一个图形来处理.也就需要多次调用 DrawArrays 或 DrawElements. ...

  3. sublime text 3 + python配置,完整搭建及常用插件安装

    四年的时间,一直使用EmEditor编辑器进行Python开发,之前是做面向过程,只需要将一个单独的py文件维护好即可,用着也挺顺手,但是最近在做面向对象的开发,不同的py文件中相互关联较多,感觉单纯 ...

  4. 技术笔记:Indy控件发送邮件

    工作中有个需求需要发送邮件,因为使用的delphi6,所以自然就选择了indy组件,想想这事挺简单的.实现的过程倒是简单,看着Indy的demo很快就完了,毕竟也不是很复杂的功能. 功能要求: 1.压 ...

  5. Fedora 24中的日志管理

    Introduction Log files are files that contain messages about the system, including the kernel, servi ...

  6. 快速Android开发系列网络篇之Android-Async-Http

    先来看一下最基本的用法 AsyncHttpClient client = new AsyncHttpClient(); client.get("http://www.google.com&q ...

  7. ABP源码分析三十六:ABP.Web.Api

    这里的内容和ABP 动态webapi没有关系.除了动态webapi,ABP必然是支持使用传统的webApi.ABP.Web.Api模块中实现了一些同意的基础功能,以方便我们创建和使用asp.net w ...

  8. C++ std::priority_queue

    std::priority_queue template <class T, class Container = vector<T>, class Compare = less< ...

  9. .Net 面试题 3C(CTS,CLS,CLR)

    1.CTS(Common Type System)通用类型系统 CTS不但实现了COM的变量兼容类型,而且还定义了通过用户自定义类型的方式来进行类型扩展.任何以.NET平台作为目标的语言必须建立它的数 ...

  10. UML

    UML:1.继承关系用空心三角形+实线来表示2.实现接口用空心三角形+虚线来表示3.关联关系用实线箭头来表示4.依赖关系用虚线箭头来表示5.聚合关系用空心菱形+实线箭头来表示6.组合关系用实心菱形+实 ...