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框架提供了多种视图技术,如JSP(JavaServer Pages)、FreeMarker或Thymeleaf,它们允许开发者创建动态页面并绑定模型数据。 3. **控制器(Controller)**:控制器作为模型和视图之间的桥梁,处理用户的...
Java Web 开发框架比较研究 Java Web 开发框架是当前 Web 应用程序开发的核心技术之一。Struts 1 和 Struts 2 是当前最流行的两种 Java Web 开发框架。Struts 2 框架从 Struts 1 框架发展而来,但其核心技术和原理...
SSM框架是目前Java Web开发中广泛使用的一种后端开发框架,它整合了Spring、Spring MVC和MyBatis三个开源框架,形成了一个功能强大的开发平台。Spring主要负责业务对象的管理;Spring MVC负责Web层的请求处理;...
7. **Spring框架**:Spring是Java企业级应用的主流框架,提供依赖注入、AOP(面向切面编程)、事务管理等核心功能,也是许多其他Java Web框架的基础。 8. **Struts与Hibernate**:Struts是经典的MVC框架,简化了...
4. **Java EE框架**:如Struts、Hibernate、Spring等,这些框架极大地简化了Java Web开发。Spring框架提供了一个全面的企业级应用开发框架,包括依赖注入、AOP(面向切面编程)、MVC、数据访问等模块。 5. **Web...
Struts是Apache软件基金会的一个开源项目,它为开发者提供了一种规范化的Web应用程序开发方式,遵循Java Servlet和JavaServer Pages(JSP)规范。通过使用Struts,开发者可以将业务逻辑、控制流和视图分离,使得代码...
1. **Servlet**:Servlet是Java Web的基础,它是一种Java类,用于扩展服务器的功能。Servlet可以处理HTTP请求,并返回响应。学习Servlet,你需要理解生命周期、服务方法以及如何部署和配置Servlet。 2. **JSP(Java...
《架构探险:从零开始写Java Web框架》首先从一个简单的 Web 应用开始,让读者学会如何使用 IDEA、Maven、Git 等开发工具搭建 Java Web 应用;接着通过一个简单的应用场景,为该 Web 应用添加若干业务功能,从需求...
较为流行的Java Web框架包括Struts、Spring、Hibernate、MyBatis等。每个框架都有其特定的应用场景和优势。 4. 数据库技术:了解关系型数据库管理系统的操作,如MySQL、Oracle或SQL Server是必不可少的。在Java Web...
5. **Web框架**:如Spring、Struts、Hibernate等,这些框架简化了开发过程,提供了强大的功能,如依赖注入、事务管理、对象关系映射等。 6. **前端技术**:HTML、CSS和JavaScript是构建Web界面的基础,而jQuery、...
在Java Web开发中,主要涉及以下几个关键知识点: 1. **Servlet与JSP**:Servlet是Java语言编写服务器端程序的标准,用于处理HTTP请求。JSP(JavaServer Pages)则是一种动态网页技术,它将HTML代码和Java代码结合...
【Java Web课程设计详解】 Java Web是Web应用程序开发的一个重要领域,它涵盖了使用Java技术来构建Web应用的各种方法。在本课程设计中,虽然功能并未全部实现,但基础功能已经完成,这为初学者提供了宝贵的参考价值...
Struts框架提供了一种结构化的方式来组织Java Web应用程序,将业务逻辑、数据处理和用户界面进行了清晰的分离。在Model部分,开发者可以处理业务逻辑和数据存储;View部分负责展示用户界面,通常由JSP页面组成;而...
Java Web编程主要涉及以下几个方面的知识点: 1. Java基础:Web编程首先需要了解Java语言的基础知识,包括Java的基本数据类型、控制流程、面向对象编程、异常处理等。Java Web编程通常会使用到Java的集合框架、多...
在深入了解Java Web开发的基础知识之前,我们需要理解几个核心概念。 首先,Java Web应用的基础是Java Servlet,它是一个Java类,用于扩展服务器的功能,处理HTTP请求并生成响应。Servlet API是开发Servlet的接口...
首先,Java Web是一种基于Java技术的Web应用开发框架,它提供了强大的服务器端编程能力,使得开发者能够构建功能丰富的动态网站。Java Web开发通常涉及Servlet、JSP(JavaServer Pages)、JSTL(JavaServer Pages ...
在讨论Java Web之前,我们需要先了解几种常见的程序类型及其开发方法: - **视窗程序**:如Windows下的应用程序,这类程序通常需要使用特定的工具(如Visual Basic)进行设计,提供图形用户界面。 - **Web程序**:...
以上只是Java Web标签使用的一小部分,实际应用中还有许多其他框架和库提供的标签,如Hibernate Validator的校验标签,以及各种JavaScript库(如jQuery)与服务器端交互的Ajax标签。熟练掌握这些标签,能显著提升...
Java Web开发学生管理系统是一个基于Java技术的Web应用程序,主要用于高校或教育机构管理学生信息、课程安排、成绩记录等日常事务。这个系统的核心目标是提高管理效率,减少人为错误,并为决策提供数据支持。 首先...