现代Java Web开发架构分析

web|架构

  当主流计算机应用软件开始迁移到客户/服务器体系结构时,程序员们开始寻找方法以简化使用类似技术并且在结构也类似的工程的开发。这就为现代软件开发框架打好了基础。

  随着基于万维网的应用程序服务器的发展及其相关的应用软件的膨胀,支持这些技术的开发框架也随着蓬勃发展。当前,在企业开发领域中出现了许多特别适合于Java J2EE平台的软件开发框架。

  在本文中,我将集中讨论现代的Java开发框架,分析它们的特征和各自的使用优点。另外,我还想比较目前流行的生产质量框架,例如Struts,Spring和Hibernate,并详细讨论其基本相似性及有关基本概念。

  我将简短分析被用于支持这些框架的企业开发环境或工具箱,例如Borland JBuilder,Eclipse以及BEA Workbench。请记住,市场上有许多有关这些开发框架的图书;然而,在任何一篇文章中,要对它们进行深入描述是不可能的。不过,我将尽力讨论最广泛地使用的概念。

  1. 共同点

  几乎所有现代的网络开发框架都遵循了模型-视图-控制(MVC)设计模式--商业逻辑和描述被分开,由一个逻辑流控制器来协调来自客户端的请求和服务器上将采取的行动。这条途径成为了网络开发的事实上的标准。每个框架的内在的机制当然是不同的,但是开发者们使用来设计和实现他们的Web应用软件的API是很类似的。差别还存在于每个框架提供的扩展方面,例如标签库,JavaServer Faces或JavaBean包装器等。

  所有的框架使用不同的技术来协调在Web应用程序之内的导航,例如XML配制文件,java属性文件或定制属性。所有的框架在控制器模块实现的方法方面也存在明显的不同。例如,EJB可能实例化在每个请求中需要的类或使用Java反射动态地调用一个适当的行动(Action)类。另外,不同框架在各自引入的概念上也有所不同。例如,一个框架可能定义用户请求和反应(以及错误)场所,而另外一个框架可能仅仅定义一个完整的流--从一个请求到多个响答和随后的再请求……

  各种Java框架在它们组织数据流的方法方面是很类似的。在请求发出后,在应用程序服务器上产生一些行动;而作为响应,一些可能包含对象集的数据总是被发送到JSP层。然后,从那些对象--可能是有setter和getter方法的简单类,javabeans,值对象,或者一些集合对象--中提取数据。现代的Java框架还想方设法简化开发者的开发任务,如通过使用简易的API,数据库连接池,甚至数据库调用包等提供自动化的追踪方式来实现。一些框架或者能够钩进(hooked into)另外的J2EE技术中,例如JMS(Java消息服务)或JMX,或把这些技术集成到一起。服务器数据持续性和日志也有可能成为框架的一部分。

  2. 企业开发环境

  一些框架在Web开发者社区和企业发展领域变得相当流行。随着这些框架的日渐成熟并开始发行稳定的版本,商业的IDE(集成发展环境)开始为这些框架提供支持并把他们纳入到自己的产品中。一些IDE甚至基于框架的概念开发出整个的产品,例如,BEA WebLogic Workshop就是基于Struts框架建立起来的。

  Borland Jbuilder为Struts提供了内建的支持,也支持JSF和JSTL。


  Eclipse平台已成为一个很流行的开发工具,部分因为它是基于插件的,部分因为它对于Web框架的支持。现在,出现了众多的Eclipse插件,甚至完整的基于Eclipse的IDE。许多插件被设计适合于Struts框架开发,例如MyEclipse(www.myeclipse.org)或M7(www.m7.com)。


  大多数IDE都具有图形化的流程和可视化对象(类代理)。例如,下面是一个JBuilder的行动(Action)设计器,用于规划Web应用程序的页面顺序。

  WebLogic Workshop引入Java页面流程技术,它扩展了Struts框架而提供了一个简化的开发模型并增加了另外一些特性。Workshop使用页面流(Page Flows),实现轻易地把用户接口与导航和商业逻辑分离开来。页面流由JSP页组成,这些页面包含用户接口元素和一个控制器文件(JPF)--它包含由用户提供的数据将怎样被处理的指令以及下一步什么页面将被返回到用户的信息。页面流动提供给开发者一个可视化的Web应用程序总体轮廓,它让开发者能够看到直观地分析不同的JSP页彼此相关联,并实现Web应用程序整体结构的快速建立。


  MyEclipse提供类似的特征,并带有更多吸引人的代价标签。


  3. Apache Struts框架

  Struts框架是一开源产品,基于模型-视图-控制器(MVC)设计范例来开发Web应用软件。它使用并且扩展了Java Servlet API,最初由Craig McClanahan创建。在2000年5月,它被捐赠到Apache Foundation。Struts框架展示了一个强有力的定制标签库,平铺显示,表单检验和I18N(国际化)。另外,Struts支持许多描述层,包括JSP,XML/XSLT,JavaServerFaces(JSF)和Velocity;还支持一些模型层,包括JavaBeans和EJB。

  4. Spring框架

  Spring框架是一个分层的Java/J2EE应用程序框架,基于Expert One-on-One J2EE设计和发行的代码。Spring框架提供一种简单的开发技术,用于自动化处理工程中大量的属性文件和助理类。

  Spring框架包括的主要特色有:

  ·强有力的基于JavaBeans的配置管理,使用Inversion-of-Control(IoC)原则。

  ·一个核心bean工厂,可用在任何环境,从applets到J2EE容器程序。

  ·通用的抽象层适合于数据库事务管理,允许可插入的事务管理器,并且不需要处理低层次的问题就可容易地划分各事务的界限。

  ·一个很有意义的异常处理的JDBC抽象层。

  ·与Hibernate集成到一起,DAO实现支持以及事务策略。

  5. Hibernate框架

  Hibernate是一适合于Java语言的对象-关系映射(ORM)解决方案。它也是开源软件,类似Struts,并且在LGPL保护下发布。Hibernate被一群来自世界各地的Java软件开发者所共同开发。它提供一个易用的框架来实现把一个面向对象的域模型映射到一传统的关系数据库。它不仅负责从Java类到数据库表格(以及来自Java数据类型的SQL数据类型)的映射,而且还提供数据查询和检索能力,并能大大减少花在SQL和JDBC手工数据处理上的开发时间。

  Hibernate的目标是减轻开发者的与大量普通的数据持续性相联系的编程任务。Hibernate还能够适应开发进程,无论它是刚开始设计还是来自一现成的数据库。Hibernate可以自动生成SQL,使开发者摆脱了手工处理结果集和进行对象转化的繁琐任务,并能使应用程序移植到所有的SQL数据库。它还能提供透明的持续性,对持续性类的唯一的要求的是实现一个无参数的构造器。

  这个框架典型地使用在JavaSwing应用软件、基于Servlet的Java应用软件和使用EJBsession beans的J2EE应用软件中。

  6. 结论

  本文概述了现代最流行的Java Web开发框架。当然,还有更多框架尚未描述,开源和商业化的都有,例如WebWork(http://www.opensymphony.com/webwork/)或Tapestry(http://jakarta.apache.org/tapestry/);而许多框架通过扩展另外的MVC框架在内部被成功开发。当前,最流行的框架是Apache Struts。当Web开发竞技场继续演变它的工具和编程方法时,Java应用程序框架也将继续成长下去。Java Web开发框架的未来一片明亮!

时间: 2024-10-30 07:56:48

现代Java Web开发架构分析的相关文章

Java Web开发之访问路径问题分析_JSP编程

本文实例讲述了Java Web开发之访问路径问题.分享给大家供大家参考.具体如下: Web应用是由大量的文件组成的,系统等运行主要是靠文件之间的相互调用来完成,调用就是根据文件的位置来确定的.如果你在访问某个文件的时候,系统报下面这样的错误,如果你的文件名没有写错,就是路径出错了. 为了说明路径问题,我们假设有以下的文档结构: 这是JBuilder2006下的一个截图,应用的名字是filepathweb,有两个文件夹,aa和bb,其中aa下有a_a.jsp和a_b.jsp两个文件,bb下有b_a

新书出版:Java Web开发技术大全——JSP+Servlet+Struts 2+Hibernate+Sp

本文为原创,如需转载,请注明作者和出处,谢谢! 作者:李宁 图书详细信息: ISBN:9787302195757 定价:79.8元 印次:1-1 装帧:平装 印刷日期:2009-4-23   图书简介: SSH是目前最流行的Java Web开发技术.本书通过对SSH中的各种技术循序渐进地讲解,使读者尽快掌握开发基于SSH的Web程序的方法.本书内 容包括Web客户端技术.JSP/Servlet技术.Struts 2(拦截器.类型转换.输入校验.上传和下载文件.Struts 2的各种标签.对 AJ

新书出版:Java Web开发技术大全——JSP+Servlet+Struts 2+Hibernate+Spring+Ajax (附源代码)

本文为原创,如需转载,请注明作者和出处,谢谢! 源代码下载 作者:李宁 图书详细信息: ISBN:9787302195757 定价:79.8元 印次:1-1 装帧:平装 印刷日期:2009-4-23 图书简介: SSH是目前最流行的Java Web开发技术.本书通过对SSH中的各种技术循序渐进地讲解,使读者尽快掌握开发基于SSH的Web程序的方法.本书内 容包括Web客户端技术.JSP/Servlet技术.Struts 2(拦截器.类型转换.输入校验.上传和下载文件.Struts 2的各种标签.

基于asp.net的Web开发架构探索

最近在研究适合团队开发的web架构解决方案,该架构即要适合分工协作又要有一定扩展性,适合不同的数据库需要,因此我查阅了一些资料,初步构想出了一套架构,请各位多多指教. 问题由来 最近在研究适合团队开发的web架构解决方案,该架构即要适合分工协作又要有一定扩展性,适合不同的数据库需要,因此我查阅了一些资料,初步构想出了一套架构,请各位多多指教. 探索 web开发架构最经典莫过于三层架构,表示层.逻辑层.数据处理层. 数据访问层:其功能主要是负责数据库的访问. 业务逻辑层:是整个系统的核心,它与这个

Java Web开发入门书籍实例解析(总结一)_java

一.基本概念 1.1.WEB开发的相关知识 WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. Internet上供外界访问的Web资源分为: 1.静态web资源(如html 页面):指web页面中供人们浏览的数据始终是不变. 2.动态web资源:指web页面中供人们浏览的数据是由程序产生的,不同时间点访问web页面看到的内容各不相同. 静态web资源开发技术:Html 常用动态web资源开发技术:JSP/Servlet.ASP.PHP等 在Java中,动

Java Web开发模式

一 Java Web开发模式的变迁 1 最初的Java web服务器端编程技术是Servlet,利用Servlet就可以开发出一个Web应用程序. 2 为了解决Servlet缺陷,SUN推出了JSP技术.但是开发人员又走向了另一个极端就是完全放弃了Servlet.   在JSP页面混合使用HTML标记和java代码编写的脚本元素标记来开发Web程序.采用这种方法虽然可以编写JSP页面变得简单,直观,然而,他只适合于业务流程简单,系统规模较小的应用系统.   如果系统较大的话,就会出现两个严重的缺

Tomcat与Java Web开发技术详解连载之一

web|详解 本章介绍如何在Tomcat上创建和发布Web应用.这里首先讲解Tomcat的目录结构以及Web应用的目录结构,接着介绍如何将HTML.Servlet.JSP和Tag Library部署到Web应用中,然后介绍把整个Web应用打包并发布的方法,最后介绍如何在Tomcat上配置虚拟主机. 本章侧重于讨论Web应用的结构和发布方法,所以没有对本章的Servlet和JSP的例子进行详细解释,关于Servlet和JSP的技术可以分别参考其它章节的内容. 2.1 Tomcat的目录结构 在To

Tomcat与Java Web开发技术详解连载之二

web|详解 2.2.4 部署HTML文件 在helloapp目录下加入index.htm文件,这个文件仅仅用来显示一串带链接的字符"Welcome to HelloApp", 它链接到login.jsp文件.以下是index.htm文件的代码: <html><head><title>helloapp</title></head><body ><p><font size="7"

Tomcat与Java Web开发技术详解连载之三

web|详解 2.2.8 创建并发布WAR文件 Tomcat既可以运行采用开放式目录结构的Web应用,也可以运行WAR文件.在本书配套光盘的sourcecode/chapter2/helloapp目录下提供了所有源文件,只要把整个helloapp目录拷贝到/webapps目录下,即可运行开放式目录结构的helloapp应用.在Web应用的开发阶段,为了便于调试,通常采用开放式的目录结构来发布Web应用,这样可以方便地更新或替换文件.如果开发完毕,进入产品发布阶段,应该将整个Web应用打包为WAR