`
kiki1120
  • 浏览: 314614 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

几种Java的Web框架的对比

阅读更多

 1、 Struts
优点:业界“标准”(很多成功案例),学习资源丰富,HTML标签非常优秀
缺点:ActionForms使用不便、无法进行单元测试(StrutsTestCase只能用于集成)

2、 Spring MVC
优点:Lifecyle for overriding binding, validation, etc.;易于同其它View框架(Titles等)无缝集成,采用IOC便于测试
缺点:使用人数少、jsp中要写很多代码、控制器过于灵活,缺少一个公用控制器
http://www.jactiongroup.net/reference/html/mvc.html (第 12 章 Web框架)

3、 WebWork
优点:结构简单易于扩展、标签库易于定制、拦截器非常出色
缺点:文档示例很少、客户端验证技术不成熟

4、 Tapestry
优点:很好用,只要你能学会、Html模板、Healthy and smart user community
缺点:文档太概念,不利于编程,学习曲线太陡,不能测试

5、 JSF
优点:J2EE标准、易于开发、丰富的导航框架
缺点:JSP标签差、技术不成熟、No single source for implementation

以上摘自《Tapestry开发指南》

如果排名的话:
第一Struts 由于许多问题已经被解决,使用它开发容易。HTML标签是它最优秀的地方。
第二 Spring MVC 它也不错,但缺乏很好的表单标签。
第三 WebWork 客户端验证技术很差。
第四 Tapestry Matt Raible目前还没学会怎么使用它。
第五 JSF 需要多听听开发人员的意见

框架选择:项目时间紧迫且没有太高要求,Struts是首选;对于大规模的企业级项目,考虑Tapestry,因为它的可重用组件;如果你是一名开源项目的开发人员,考虑WebWork,因为它要求你对它本身的运行机制要清楚(强迫你分析它的源代码)

http://www.sohozu.com/2005/4-19/19040547399.html
Tapestry入门
 简介

Jakarta Tapestry是一个开源的Java Web应用框架。你或许会说:"大同小异的东西罢了."多数

情况下,我同意你的观点,然而,只要花上些许时间研究一下,你会发现Tapestry跟别的框架大为不同,它是值得严肃对待的。

Tapestry是一个基于控件的框架以致于用它开发Web应用类似开发传统的GUI应用。你用Tapestry开发Web应用时你无需关注以操作为中心的(operation-centric) Servlet API.引用Tapestry网站上的一句话:"Tapestry用对象(objects),方法(methods),属性(properties)替代以往的URLs和查询参数, 重新诠释Web应用开发.Tapestry 3.0即将发布,它有大量的改进和新的特性。

Tapestry的目标

简单性

Tapestry应用与传统的Servlet应用相比代码量更少。大多数传统的Servlet应用包含如下厌烦和重复的任务:解析查询参数,处理HttpSession对象,构建URLs。Tapestry消除了传统Servelt应用中许多无趣的"衔接"代码("plumbing" code)使开发者把精力集中到应用逻辑上来。

一致性

Tapestry为开发Web应用的页面提供了一致的方式。这样有助于消除传统Servlet应用开发中臆测。由于所有Tapestry应用中的页面都是用相同的可复用的控件组织而成,所以工作方式是相似的。

效率

Tapestr应用拥有高度的可升级性,它利用缓存和对象池使每个请求的处理时间最小化。Tapestry应用拥有跟传统Servlet应用相仿的性能。

错误反馈

任何开发过Servlet/JSP应用的人毫无质疑有类似经历:为了找出Web.xml文件有什么错误,不得不花费大量时间察看浏览器中的堆栈信息。Tapestry拥有优秀的错误报告方式,最值得一提的是它会指出哪个文件以及那一行导致了错误。

与Struts比较

既然Apache Struts可能是当今应用最广泛的Web应用框架,拿Tapestry与它比较是唯一公平的。以下是一些观察比较,它们来源于为这篇文章开发的几个简单的Tapestry应用和为几个Struts工程的工作经历。

Struts的优点

1 一个Servlet/JSP开发者熟悉Struts无需太久。然而Tapestry的学习曲线会长一点,因为它与流行的Web应用框架不太相同 。

2 Struts在Java社区里被广泛接受和使用。为你的项目找一个好的Struts开发人员并非难事,Tapestry近来在开发者社区里 赢得一些关注,然而仍有许多Java老手不知道Tapestry为何物。

3 既然Struts被如此广泛的使用,所以有很多Struts资源可供参考。相比大多数开源软件,Tapestry拥有非常可观的资源和文档,但跟Struts相比仍有差距。

Tapestry的优点

1 你开发一个Tapestry应用无需关注Servlet API,你也无须为你的Servlet应用写一些典型的"衔接"代码。虽然Struts简化了工作,然而Servlet API 仍是你需面对的。

2 Tapestry的页面模板除了几个特别属性和标识就是一个标准的HTML文件。 如果你是一个开发小组中的HTML设计高手,然而你不懂Java或JSP,这就给你带来很大方便。

3 因为Tapestry页面是标准的HTML,所以可以用HTML所见即所得(WYSIWYG)编辑器编辑和预览该页。当一个页需要修改它的外观并不需要通知服务器让它重新编译JSP.【能有效的缓存页面】

4 Tapestry不需要一个至高的,整个应用范围的配置文件。Tapestry应用中的每一页是独立的,改变一页不会影响开发其他 页面的开发者,因为并没有一个配置文件把所有页面的浏览粘连在一起。

5 Tapestry拥有极好的错误报告。如果你在一个页的模板或页面规范犯了一个错误,Tapestry会指出导致错误的行号。

6 用Tapestry开发是种乐趣。这样说听上去似乎老调,然而用Tapestry开发一个Web应用相比应用其他流行的框架更为自然有趣。用Tapestry开发是应用了一种基于控件的架构,与开发传统的GUI应用非常相似。

Tapestry 架构

Tapestry框架是标准Servlet API的一种扩展。它需要J2SDK1.2或更高版本的J2SDK和一个与Servlet API 2.2(或更高)兼容的应用服务器/Servlet容器。

一个Tapestry应用由许多拥有唯一名称的页面组成。一个页面由一个模板和一些可复用的控件构成。模板由标准的HTML标签和一些额外的属性和标签构成,这些额外的属性和标签是为了告诉Tapestry框架这个页面的那些部分是由Tapestry控件组成。

简单的Tapestry应用

为了最好的描述构建一个Tapestry页面的方方面面,我们可以看看这个Pig Latin翻译器应用的代码。这个应用只有一个页面,在这页里输入一个text值把它翻译成Pig Latin,然后把翻译好的值显示给用户。

在Tapestry应用中每个页由3个部分组成:一个HTML模板,一个页面规范文件,一个Java类。

这里有这个页面屏幕抓图:

页面模板由标准的HTML标签和一些额外的属性和标签构成,这些额外的属性和标签是为了告诉Tapestry框架这个页面的那些部分是由Tapestry控件组成。页面模板存放在Web应用的根context目录下。通常,Tapestry在启动时会寻找和呈现一个名叫"Home"的页。虽然我们可以改变这种行为,但依照Tapestry的惯例会更简单。

 

分享到:
评论

相关推荐

    java web开发框架

    Java Web框架提供了多种视图技术,如JSP(JavaServer Pages)、FreeMarker或Thymeleaf,它们允许开发者创建动态页面并绑定模型数据。 3. **控制器(Controller)**:控制器作为模型和视图之间的桥梁,处理用户的...

    两种Java Web通用开发框架的比较研究.pdf

    Java Web 开发框架比较研究 Java Web 开发框架是当前 Web 应用程序开发的核心技术之一。Struts 1 和 Struts 2 是当前最流行的两种 Java Web 开发框架。Struts 2 框架从 Struts 1 框架发展而来,但其核心技术和原理...

    基于SSM框架的Java Web开发课程教学中的几点思考.pdf

    SSM框架是目前Java Web开发中广泛使用的一种后端开发框架,它整合了Spring、Spring MVC和MyBatis三个开源框架,形成了一个功能强大的开发平台。Spring主要负责业务对象的管理;Spring MVC负责Web层的请求处理;...

    MLDN Java Web 开发实战经典源码李兴华源代码

    7. **Spring框架**:Spring是Java企业级应用的主流框架,提供依赖注入、AOP(面向切面编程)、事务管理等核心功能,也是许多其他Java Web框架的基础。 8. **Struts与Hibernate**:Struts是经典的MVC框架,简化了...

    java web4.zip

    4. **Java EE框架**:如Struts、Hibernate、Spring等,这些框架极大地简化了Java Web开发。Spring框架提供了一个全面的企业级应用开发框架,包括依赖注入、AOP(面向切面编程)、MVC、数据访问等模块。 5. **Web...

    java web投票系统

    Struts是Apache软件基金会的一个开源项目,它为开发者提供了一种规范化的Web应用程序开发方式,遵循Java Servlet和JavaServer Pages(JSP)规范。通过使用Struts,开发者可以将业务逻辑、控制流和视图分离,使得代码...

    张龙 java web 课件

    1. **Servlet**:Servlet是Java Web的基础,它是一种Java类,用于扩展服务器的功能。Servlet可以处理HTTP请求,并返回响应。学习Servlet,你需要理解生命周期、服务方法以及如何部署和配置Servlet。 2. **JSP(Java...

    架构探险-从零开始写javaweb框架

    《架构探险:从零开始写Java Web框架》首先从一个简单的 Web 应用开始,让读者学会如何使用 IDEA、Maven、Git 等开发工具搭建 Java Web 应用;接着通过一个简单的应用场景,为该 Web 应用添加若干业务功能,从需求...

    《学通Java Web的24堂课》.(陈丹丹,卢瀚).[PDF]&ckook;

    较为流行的Java Web框架包括Struts、Spring、Hibernate、MyBatis等。每个框架都有其特定的应用场景和优势。 4. 数据库技术:了解关系型数据库管理系统的操作,如MySQL、Oracle或SQL Server是必不可少的。在Java Web...

    java web开发学习手册

    5. **Web框架**:如Spring、Struts、Hibernate等,这些框架简化了开发过程,提供了强大的功能,如依赖注入、事务管理、对象关系映射等。 6. **前端技术**:HTML、CSS和JavaScript是构建Web界面的基础,而jQuery、...

    Java Web.zip

    在Java Web开发中,主要涉及以下几个关键知识点: 1. **Servlet与JSP**:Servlet是Java语言编写服务器端程序的标准,用于处理HTTP请求。JSP(JavaServer Pages)则是一种动态网页技术,它将HTML代码和Java代码结合...

    java web课程设计

    【Java Web课程设计详解】 Java Web是Web应用程序开发的一个重要领域,它涵盖了使用Java技术来构建Web应用的各种方法。在本课程设计中,虽然功能并未全部实现,但基础功能已经完成,这为初学者提供了宝贵的参考价值...

    java 框架论坛系统

    Struts框架提供了一种结构化的方式来组织Java Web应用程序,将业务逻辑、数据处理和用户界面进行了清晰的分离。在Model部分,开发者可以处理业务逻辑和数据存储;View部分负责展示用户界面,通常由JSP页面组成;而...

    Java Web编程实战宝典-高清-完整目录-2014年9月

    Java Web编程主要涉及以下几个方面的知识点: 1. Java基础:Web编程首先需要了解Java语言的基础知识,包括Java的基本数据类型、控制流程、面向对象编程、异常处理等。Java Web编程通常会使用到Java的集合框架、多...

    Java Web开发基础知识

    在深入了解Java Web开发的基础知识之前,我们需要理解几个核心概念。 首先,Java Web应用的基础是Java Servlet,它是一个Java类,用于扩展服务器的功能,处理HTTP请求并生成响应。Servlet API是开发Servlet的接口...

    个人博客 java web

    首先,Java Web是一种基于Java技术的Web应用开发框架,它提供了强大的服务器端编程能力,使得开发者能够构建功能丰富的动态网站。Java Web开发通常涉及Servlet、JSP(JavaServer Pages)、JSTL(JavaServer Pages ...

    java web 技术详解

    在讨论Java Web之前,我们需要先了解几种常见的程序类型及其开发方法: - **视窗程序**:如Windows下的应用程序,这类程序通常需要使用特定的工具(如Visual Basic)进行设计,提供图形用户界面。 - **Web程序**:...

    java web 标签大全

    以上只是Java Web标签使用的一小部分,实际应用中还有许多其他框架和库提供的标签,如Hibernate Validator的校验标签,以及各种JavaScript库(如jQuery)与服务器端交互的Ajax标签。熟练掌握这些标签,能显著提升...

    Java Web开发学生管理系统

    Java Web开发学生管理系统是一个基于Java技术的Web应用程序,主要用于高校或教育机构管理学生信息、课程安排、成绩记录等日常事务。这个系统的核心目标是提高管理效率,减少人为错误,并为决策提供数据支持。 首先...

Global site tag (gtag.js) - Google Analytics