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

java web几种开发模式(转)的更多相关文章

  1. Java Web应用的开发模式

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

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

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

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

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

  4. javaweb学习总结(二十一)——JavaWeb的两种开发模式

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

  5. APP的三种开发模式

    转载于http://pleasureswx123.github.io/2014/09/15/APP%E7%9A%84%E4%B8%89%E7%A7%8D%E5%BC%80%E5%8F%91%E6%A8 ...

  6. JavaWeb学习 (二十)————JavaWeb的两种开发模式

    一.JSP+JavaBean开发模式 1.1.jsp+javabean开发模式架构 jsp+javabean开发模式的架构图如下图(图1-1)所示

  7. javaweb(二十一)——JavaWeb的两种开发模式

    一.JSP+JavaBean开发模式 1.1.jsp+javabean开发模式架构 jsp+javabean开发模式的架构图如下图(图1-1)所示

  8. javaweb基础(21)_两种开发模式

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

  9. ASP.Net的两种开发模式

    一.ASP.Net的两种开发模式 1.1 ASP.Net WebForm的开发模式 (1)处理流程 在传统的WebForm模式下,我们请求一个例如http://www.aspnetmvc.com/bl ...

随机推荐

  1. gc CMSMaxAbortablePrecleanTime

    https://blogs.oracle.com/jonthecollector/ 链接打不开了,我记得里边说,这个参数是指定vm试图在它指定的时间间隔内等到一次小垃圾回收...minor gc, g ...

  2. emulator shortcut

    Alt+Enter Maximizes the emulator. Ctrl+F11 Changes the orientation of the emulator from landscape to ...

  3. Brain Network (medium)

    Brain Network (medium) Further research on zombie thought processes yielded interesting results. As ...

  4. js 切换图片

    <html><head lang="en"> <meta charset="UTF-8"> <title>< ...

  5. C​# ​日​期​时​间

    //获取日期+时间 DateTime.Now.ToString(); // 2008-9-4 20:02:10 DateTime.Now.ToLocalTime().ToString(); // 20 ...

  6. GDB + gdbserver 远程调试android native code

    原文地址:GDB + gdbserver 远程调试android native code 作者:tq08g2z 以调试模拟器中的native library code为例. Host: ubuntuT ...

  7. Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Preferences -> SQL Queries and reconn

    使用MySQL执行update的时候报错:   MySQL     在使用mysql执行update的时候,如果不是用主键当where语句,会报如下错误,使用主键用于where语句中正常. 异常内容: ...

  8. mysql----快速删除数据表(drop,truncate.delete)

    概念: 三者均可删除数据表 TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行.但 TRUNCATE TABLE 比 DELETE 速度快 ...

  9. Python之路:堡垒机实例以及数据库操作

    一.堡垒机前戏 开发堡垒机之前,先学习Python的paramiko模块,该模块基于SSH用于连接远程服务器并执行相关操作. SSHClient 用于连接远程服务器并执行基本命令 基于用户名密码连接: ...

  10. eclipse shortcut binding

    有些真的是太方便了,我竟然不知道,比如ctrl + h 就是打开search 功能,包括file search,我竟然每次都点击工具条上的放大镜图标! use Ctrl+Shift+T for ope ...