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

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持久层中数据库的操作,组成的开发方案。

出处:http://blog.csdn.net/yue7603835/article/details/7479855

Java开发web的几种开发模式的更多相关文章

  1. Java中BigDecimal的8种舍入模式是怎样的

    Java中BigDecimal的8种舍入模式是怎样的?下面长沙欧柏泰克软件学院和大家一起来学习下吧:  java.math.BigDecimal 不可变的.任意精度的有符号十进制数.BigDecima ...

  2. Java Web的两种开发模式

    参考文献:http://www.cnblogs.com/xdp-gacl/p/3908610.html 一.Jsp+JavaBean 此模式如下图所示:

  3. JAVA开发Web Service几种框架介绍

    郑重声明:此文为转载来的,出处已不知了,侵告删. 在讲Web Service开发服务时,需要介绍一个目前开发Web Service的几个框架,分别为Axis,axis2,Xfire,CXF以及JWS( ...

  4. JAVA 急速WEB框架Blast-本人开发的JavaWeb急速框架Blast上线了

    JAVA 急速WEB框架Blast ——对JavaWeb的学习性框架,参考了spring的实现 ——阅读Blast源码可以快速掌握JavaWeb常用技术和方法论,并付诸实践 Blast 是基于 Jav ...

  5. Java中BigDecimal的8种舍入模式

    java.math.BigDecimal 不可变的.任意精度的有符号十进制数.BigDecimal 由任意精度的整数非标度值和32位的整数标度(scale)组成. 如果为零或正数,则标度是小数点后的位 ...

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

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

  7. JAVA 23种开发模式详解(代码举例)

    设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了 ...

  8. SpringMVC内容略多 有用 熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器、过滤器等Web组件以及MVC架构模式进行Java Web项目开发的经验。

    熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器.过滤器等Web组件以及MVC架构 ...

  9. 《ASP.NET MVC4 WEB编程》学习笔记------Entity Framework的Database First、Model First和Code Only三种开发模式

    作者:张博出处:http://yilin.cnblogs.com Entity Framework支持Database First.Model First和Code Only三种开发模式,各模式的开发 ...

随机推荐

  1. ASP.NET Web API自身对CORS的支持: EnableCorsAttribute特性背后的故事

    从编程的角度来讲,ASP.NET Web API针对CORS的实现仅仅涉及到HttpConfiguration的扩展方法EnableCors和EnableCorsAttribute特性.但是整个COR ...

  2. bootstrap-popover的配置与灵活应用

    首先罗列一下配置参数: 1.animation true/false 是否动画 2.placement 'right'/'left'/top/bottom/function(){return 'rig ...

  3. WPF入门教程系列十六——WPF中的数据绑定(二)

    三.绑定模式 通过上一文章中的示例,学习了简单的绑定方式.在这里的示例,要学习一下绑定的模式,和模式的使用效果. 首先,我们来做一个简单示例,这个示例是根据ListBox中的选中项,去改变TextBl ...

  4. HTML的页面IE注释

    我们常常会在网页的HTML里面看到形如[if lte IE 9]……[endif]的代码,表示的是限定某些浏览器版本才能执行的语句,那么这些判断语句的规则是什么呢?请看下文: <!--[if ! ...

  5. Index的填充属性:FillFactor 和 PAD_INDEX

    在Create Index时,必须考虑属性FillFactor 和 PAD_INDEX的设置,这两个属性只在create index 或 rebuild index时起作用,表示Index page( ...

  6. SQL Server 默认跟踪(Default Trace)

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 基础知识(Rudimentary Knowledge) 查看默认跟踪信息(Default Tr ...

  7. Entity Framework Code First实体对象变动跟踪

    Entity Framework Code First通过DbContext.ChangeTracker对实体对象的变动进行跟踪,实现跟踪的方式有两种:变动跟踪快照和变动跟踪代理. 变动跟踪快照:前面 ...

  8. C语言 第二章 数据类型、变量和输入函数

    一.数据类型简介 在 C 语言中,数据类型指的是用于声明不同类型的变量或函数的一个广泛的系统.变量的类型决定了变量存储占用的空间,以及如何解释存储的位模式. 类型转换: 类型 存储大小 值范围 cha ...

  9. dapper-dot-net用法及其扩展系列

    dapper-dot-net用法及其扩展系列 虽然已经一段时间没写.net了,但是昨天看了下dapper和Dapper-Extensions在github仍然有更新,他们的受欢迎程度可想而知.所以想把 ...

  10. struts2学习笔记--struts.xml配置文件详解

    这一节主要讲解struts2里面的struts.xml的常用标签及作用: 解决乱码问题 <constant name="struts.i18n.encoding" value ...