- 浏览: 227058 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
thebye85:
引用 另外一个需要注意的问题,就是SessionMap和隐藏对 ...
WebWork深度探索之Session -
lanxiaoshuang:
写的真好
说的都是概念——有关编程范式 -
lhz:
grep unique wc你需要的只是这么几个小工具而已
努力做个Pragmatic Programmer
大约一年前,我为一个小型项目选择框架的时候,WebWork第一次进入了我的视野,它优美的设计以及强大的功能,再配以平缓的学习曲线深深打动了我。在一番比较过后,我毫不犹豫地选择了WebWork并用它顺利完成了这个项目,并且在开发过程中写了不少总结性的文章。尽管WebWork有着这样那样的优势,但是它本身仍然存在着诸多的不足,社区不够活跃,更新速度太慢,最糟糕的就是文档太少且质量参差不齐,这些因素都使得WebWork并没有如期待那样流行,而我写的文章也鲜有人浏览就是明证。去年在写完了深入探索WebWork系列最后一篇之后,我就把WebWork暂时放到了一边。
时光飞逝,一年过去了,WebWork就在我不经意间悄悄地发展,从我最初使用的2.1.2到2.1.7再到现在2.2beta,而我写的《WebWork初体验》也悄无声息地爬上了阅读量的排行榜,扣除有关股票的那篇Post不计,这篇文章已经成为了技术方面最受关注的文章。在最近我也不时收到一些朋友给我发来的mail询问有关WebWork的问题,这也让我点受宠若惊。这个曾经让我如此心动的框架再次闯入了我的IT生活,牵动着我的心。随着WebWork2.2beta的发布,随着大家对WebWork关注程度的提高,随着《WebWork in Action》的出版,随着......我想是时候重新扬帆,为推广这个从过去到现在都让我赞叹的框架出一点点力了。而我最先想到的自然就是翻译《WebWork in Action》。
《WebWork in Action》是一本翘首企盼了很久的书,它的分量之重自然不需要多言了。我来翻译这样一本书,确实有点高攀了,但这是一本值得细细品味的书,翻译则是一个很好的驱动力,促使自己更加专注的研读每一段,每一字句。至于翻译的文字能否面世,则需要看机会了,但不管怎么样,我一定会完成这样一项工作,哪怕我的文字艰深晦涩,无人喝彩,我也会敝帚自珍,将这些译文好好收藏。呵呵~~~
好了,说了那么多废话,也该说说正题了。经过一个星期的努力,终于把该书的第一章给翻译完毕了,鉴于版权的问题,我不能把这些文字公布出来让大家扔鸡蛋,但是我仍然想说说自己在看完并译完第一章之后所得到的启发。
第一章是对WebWork的概述。在讲述WebWork的特性之前,作者花了相当的篇幅对MVC的作用以及发展做了介绍。通过这些介绍,你可以了解到MVC的产生是为了解决GUI应用程序中存在的紧耦合问题。这里的紧耦合是指域对象逻辑与显示逻辑之间的紧密耦合,为了能够将业务逻辑从显示层面的代码中剥离出来,MVC模式派上了极大的用场。然而这样一个具有历史意义的模式并不能直接应用到Web环境中,因为HTTP并不是有状态的连接协议,而Web应用程序都被抽象成了Request/Response形式。因此稍作改变的MVC才能很好地为Web应用程序所用,这变化的MVC通常有两种——Front Controller与Page Controller。对于这两个名词,很多朋友应该都不会陌生了,很多流行的J2EE框架使用的就是前者,而ASP.NET则是后者的拥趸。首先,Front Controller的出现是因为在Web环境下,View并不是一个可以独立更新的对象,而是一个由请求引发其本身render的画面,因此,在经典的MVC中Model与View直接通信的情况就不复存在了。取而代之的是Controller与View通信,而View则通过Request Dispatcher来匹配不同的Controller,由Controller更新Model,再由Controller返回一个值,根据不同的返回值render不同的View,同时Controller将需要显示的数据Push至View中。而Page Controller则经典MVC模式进化的另外一种方式。与Front Controller相比,Page Controller在结构上则要简单得多,并不存在Request Dispatcher这个部分。大家可以发现,在ASP.NET中,Browser请求的是.aspx资源,而一个.aspx则与一个Page类的派生类对应,其中可能包含了OnLoad, OnRender以及响应Control事件的自定义方法,由这些方法中的某一个来完成View的render工作,这个由Page类派生出来的子类就是Page Controller。Page Controller模式在解耦合方面不算称职,但是它的开发效率极高,在Visual Studio这类开发工具的支持下尤为突出。这两种模式各有优势,而WebWork对它们都提供了良好的支持,给开发者留下了可选择的空间。
在讲完了MVC之后,作者又对Framework和Container作了深入的阐述和比较。偶认为这一节的文字是第一章最为精彩,且最有价值的。文中引用了WebWork缔造者Rickard Oberg的妙语对框架做出解释:A framework's power comes not from what it allows, but from what it does not allow. Framework强调的是限制,其中有组织结构的限制,也有Flow的限制。这样的限制可能减少了你大展拳脚的机会,却会给你的应用程序带来清晰的脉络结构,更加重要的是可以使得一个团队进行协作开发,开发效率得到提高,软件的规模也会随之扩大。这就是框架所带来的巨大作用。与Framework相反,Container则不是专注在限制,其目的是提供一个环境来装载特定的对象,并增强这些对象的功能性,同时又不影响对象之间的独立性。Servlet Container和EJB Container,还有很hot的Inversion of Control Container都具有这样的特性。WebWork是两者的组合体,除了提供框架之外,还为开发人员提供一个Lightweight Container。在第一章剩下的篇幅里,作者还回顾了WebWork的发展史并展望了未来。嗯,未来真的很诱人。
好了,对第一章的感受就讲到这里了,但愿各位也能够随我一起关注WebWork吧!
时光飞逝,一年过去了,WebWork就在我不经意间悄悄地发展,从我最初使用的2.1.2到2.1.7再到现在2.2beta,而我写的《WebWork初体验》也悄无声息地爬上了阅读量的排行榜,扣除有关股票的那篇Post不计,这篇文章已经成为了技术方面最受关注的文章。在最近我也不时收到一些朋友给我发来的mail询问有关WebWork的问题,这也让我点受宠若惊。这个曾经让我如此心动的框架再次闯入了我的IT生活,牵动着我的心。随着WebWork2.2beta的发布,随着大家对WebWork关注程度的提高,随着《WebWork in Action》的出版,随着......我想是时候重新扬帆,为推广这个从过去到现在都让我赞叹的框架出一点点力了。而我最先想到的自然就是翻译《WebWork in Action》。
《WebWork in Action》是一本翘首企盼了很久的书,它的分量之重自然不需要多言了。我来翻译这样一本书,确实有点高攀了,但这是一本值得细细品味的书,翻译则是一个很好的驱动力,促使自己更加专注的研读每一段,每一字句。至于翻译的文字能否面世,则需要看机会了,但不管怎么样,我一定会完成这样一项工作,哪怕我的文字艰深晦涩,无人喝彩,我也会敝帚自珍,将这些译文好好收藏。呵呵~~~
好了,说了那么多废话,也该说说正题了。经过一个星期的努力,终于把该书的第一章给翻译完毕了,鉴于版权的问题,我不能把这些文字公布出来让大家扔鸡蛋,但是我仍然想说说自己在看完并译完第一章之后所得到的启发。
第一章是对WebWork的概述。在讲述WebWork的特性之前,作者花了相当的篇幅对MVC的作用以及发展做了介绍。通过这些介绍,你可以了解到MVC的产生是为了解决GUI应用程序中存在的紧耦合问题。这里的紧耦合是指域对象逻辑与显示逻辑之间的紧密耦合,为了能够将业务逻辑从显示层面的代码中剥离出来,MVC模式派上了极大的用场。然而这样一个具有历史意义的模式并不能直接应用到Web环境中,因为HTTP并不是有状态的连接协议,而Web应用程序都被抽象成了Request/Response形式。因此稍作改变的MVC才能很好地为Web应用程序所用,这变化的MVC通常有两种——Front Controller与Page Controller。对于这两个名词,很多朋友应该都不会陌生了,很多流行的J2EE框架使用的就是前者,而ASP.NET则是后者的拥趸。首先,Front Controller的出现是因为在Web环境下,View并不是一个可以独立更新的对象,而是一个由请求引发其本身render的画面,因此,在经典的MVC中Model与View直接通信的情况就不复存在了。取而代之的是Controller与View通信,而View则通过Request Dispatcher来匹配不同的Controller,由Controller更新Model,再由Controller返回一个值,根据不同的返回值render不同的View,同时Controller将需要显示的数据Push至View中。而Page Controller则经典MVC模式进化的另外一种方式。与Front Controller相比,Page Controller在结构上则要简单得多,并不存在Request Dispatcher这个部分。大家可以发现,在ASP.NET中,Browser请求的是.aspx资源,而一个.aspx则与一个Page类的派生类对应,其中可能包含了OnLoad, OnRender以及响应Control事件的自定义方法,由这些方法中的某一个来完成View的render工作,这个由Page类派生出来的子类就是Page Controller。Page Controller模式在解耦合方面不算称职,但是它的开发效率极高,在Visual Studio这类开发工具的支持下尤为突出。这两种模式各有优势,而WebWork对它们都提供了良好的支持,给开发者留下了可选择的空间。
在讲完了MVC之后,作者又对Framework和Container作了深入的阐述和比较。偶认为这一节的文字是第一章最为精彩,且最有价值的。文中引用了WebWork缔造者Rickard Oberg的妙语对框架做出解释:A framework's power comes not from what it allows, but from what it does not allow. Framework强调的是限制,其中有组织结构的限制,也有Flow的限制。这样的限制可能减少了你大展拳脚的机会,却会给你的应用程序带来清晰的脉络结构,更加重要的是可以使得一个团队进行协作开发,开发效率得到提高,软件的规模也会随之扩大。这就是框架所带来的巨大作用。与Framework相反,Container则不是专注在限制,其目的是提供一个环境来装载特定的对象,并增强这些对象的功能性,同时又不影响对象之间的独立性。Servlet Container和EJB Container,还有很hot的Inversion of Control Container都具有这样的特性。WebWork是两者的组合体,除了提供框架之外,还为开发人员提供一个Lightweight Container。在第一章剩下的篇幅里,作者还回顾了WebWork的发展史并展望了未来。嗯,未来真的很诱人。
好了,对第一章的感受就讲到这里了,但愿各位也能够随我一起关注WebWork吧!
发表评论
-
在String的面前丢脸
2004-06-18 00:39 1262重返C++的世 ... -
Summary of function parameter
2004-07-14 02:33 1141对C++这位入 ... -
此Vector非彼Vector
2004-08-05 15:51 1046在学习STL的过程中,我发现了一个熟悉的面孔— ... -
模板——泛型和STL的基础
2004-08-07 01:01 1325所谓泛型,从字面上可以猜想,就是泛化的类型(型 ... -
让人头痛的Vector(提问篇)
2004-08-07 16:55 1228在写完了此Vector非彼Vector这篇随笔 ... -
我该怎样shuffle呢
2004-08-10 01:47 1179在STL的Algorithm中有着这样的一种算 ... -
WebWork初体验
2004-08-11 17:43 1290在这篇ASP.NET ... -
WebWork深度探索之盲人摸象
2004-08-12 23:54 1127昨天尝试着利用WebWork做了一个小功能[1 ... -
WebWork深度探索之号外
2004-08-14 09:03 1039昨天开始对WebWork进行了一些初步的探索[ ... -
WebWork深度探索之标签库
2004-08-15 00:28 1530由于WebWork本身提供了一套自定义的标签库 ... -
什么是Law of Demeter
2004-08-15 14:22 1231今天一如昨日,继续对WebWork进行小打小闹 ... -
所谓的Dumb Question
2004-08-15 17:16 1033为了能够更 ... -
WebWork深度探索之标签库(续)
2004-08-16 15:58 1128昨日对WebWork的标签库进行了小小的研究[ ... -
WebWork深入探索之初见端倪
2004-08-19 16:35 893使用WebWork进 ... -
建网站的小Tips
2004-08-20 23:58 1034这几天都在忙着做一个小网站,从网页美工到后台处 ... -
URL与RequestDispatcher
2004-08-21 23:58 1002今天照例继续自己的网站建设之旅,原本以为可以大 ... -
WebWork深度探索之Pitfall
2004-08-25 14:31 957在使用WebWork进行开发的过程中,她的种种 ... -
WebWork深度探索之Session
2004-08-26 15:38 1523昨天上午刚 ... -
搞笑的textarea标签
2004-08-31 18:17 1582很久没有用 ... -
两天四疑问
2004-09-03 10:56 9939月份的前两天,我仍然做着网站开发的工作。在开 ...
相关推荐
虽然现在Spring MVC和Struts 2等框架更受关注,但WebWork的许多设计理念和技术仍对现代Web开发有着深远的影响。通过深入研究WebWork,开发者可以了解到早期MVC框架的设计思想,同时也能提升自己的Java Web开发技能。
WebWork框架尤其以其在Jive Forum中的应用而闻名,后者是一款流行的论坛软件,其源代码的深入研究甚至引发了技术社区的广泛关注。 ### WebWork2的演变与架构 WebWork框架经历了从紧耦合设计向模块化设计的重大转变...
在WebWork框架的使用过程中,开发者需要关注其配置文件xwork.xml,它定义了Action的映射规则以及应用的配置信息。正确配置xwork.xml文件对于框架的正常运行是至关重要的。 WebWork的项目资源和参考资料部分提供了...
WebWork 是一个基于Java的轻量级MVC(Model-View-Controller)框架,它提供了一种优雅的方式来构建Web应用程序,强调代码的可维护性和可扩展性。本教程旨在帮助初学者理解WebWork的工作原理,并通过实例深入学习其...
面向切面编程是一种编程范式,主要用来解决软件开发中的“横切关注点”问题,比如事务管理、日志记录等。在Spring中,AOP是通过代理模式实现的,可以通过声明式或基于注解的方式来定义切面。 ### WebWork2框架介绍 ...
在WebWork的架构中,开发者可以更专注于业务逻辑,而不用过多地关注底层的HTTP请求处理和页面渲染。以下是WebWork的一些核心概念和功能的详细说明: 1. **WebWork介绍** WebWork最初由OpenSymphony团队开发,后...
WebWork2.0是一款基于Java的轻量级MVC(模型-视图-控制器)...正确配置这些依赖关系对于WebWork2.0的顺利运行至关重要,它们共同构成了WebWork2.0的运行环境,使得开发者可以专注于业务逻辑,而无需关注底层的细节。
在本例中,我们关注的是使用WebWork框架在Java环境中实现文件上传。WebWork是一个轻量级的MVC(Model-View-Controller)框架,它提供了处理HTTP请求和响应的强大工具,包括文件上传。 首先,我们需要了解WebWork的...
- **UI组件**:第十一章关注于如何使用WebWork提供的UI组件来简化前端开发过程,提高用户体验。 #### 五、高级主题 - **类型转换**:第十二章介绍了WebWork中的类型转换机制,帮助开发者处理表单提交的不同数据...
WebWork则是另一个基于Action的MVC框架,它的设计理念是通过减少样板代码来提高开发者效率,后来WebWork发展成为Struts2。 Spring框架的核心特点包括: 1. **依赖注入**:通过XML配置或注解方式,Spring可以帮助...
在这个例子中,我们关注的是将Spring、Hibernate和WebWork2这三个强大的框架整合在一起。这三者分别是Spring作为应用的IoC(Inversion of Control)和AOP(Aspect Oriented Programming)容器,Hibernate作为ORM...
AOP则提供了一种处理横切关注点(如日志、事务管理)的方式,使得代码更整洁。Spring还提供了对数据库事务的管理,通过声明式事务处理,开发者无需在业务代码中显式处理事务,提高了代码的可读性和可维护性。 ...
7. **视图解析**:虽然WebWork主要关注控制器层,但通过Spring,可以方便地集成各种视图技术,如JSP、FreeMarker、Velocity等。 通过整合WebWork2.1和Spring,开发者可以获得一个既具备WebWork强大动作处理能力,又...
Spring可以通过其Action代理来管理和控制WebWork的动作,同时Spring的AOP特性可以用于处理如日志记录、事务管理等跨切面关注点。 Spring与Hibernate的整合则主要体现在数据访问层。Spring提供了HibernateTemplate或...
标题 "spring+hibernate+webwork相关配置" 指的是一个集成开发环境的配置,其中涵盖了三个关键的技术框架:Spring、Hibernate和WebWork。这些框架在Java Web开发中非常常见,主要用于实现依赖注入、持久化管理和MVC...
WebWork是早期的一个流行MVC(Model-View-Controller)框架,它为开发者提供了强大的动作映射和事件处理机制,使得业务逻辑与表现层的分离更加清晰。WebWork的主要优点在于它的灵活性和可扩展性,通过拦截器...
在IT行业中,Web开发是一个广泛讨论的话题,而`webwork`、`spring`和`ibatis`是构建高效、灵活的Web应用的三大组件。这个"webwork+spring+ibatis简单实例"提供了如何整合这三个框架来创建一个功能完整的应用程序的...
6. AOP(面向切面编程):WebWork2结合XWork框架,提供了AOP支持,可以定义拦截器来处理如日志、事务管理等横切关注点。 7. 动态方法调用:WebWork2允许动态调用动作方法,增强了代码的灵活性。 8. 支持AJAX:...