Wicket开发指南:2006版深入解析

需积分: 9 4 下载量 5 浏览量 更新于2024-07-23 收藏 4.32MB PDF 举报
"wicket开发指南2006" 《Wicket开发指南2006》是一本由王磊编写的中文版Wicket资料,详细介绍了Wicket这一Java Web开发框架的相关知识。Wicket是一个轻量级、基于组件的Web应用程序框架,强调代码的清晰性和可维护性,以及对Java对象模型的直接映射。 1. Wicket简介 Wicket的前生后世篇章讲述了Wicket的发展历程,它作为一种不同于传统Web开发模式的框架,旨在提供更加直观和面向对象的编程体验。Wicket的核心理念是将Web页面的呈现逻辑与业务逻辑分离,从而提高开发效率和代码质量。 1.1 关于重新发明轮子的争论 在讨论Wicket时,作者提到了对于是否需要重新发明轮子的争议。Wicket通过其独特的设计解决了传统Web框架的一些问题,比如视图和控制器之间的紧密耦合,以及对HTML模板语言的依赖。 1.2 Wicket与目前Web框架的比较 书中对比了Wicket与其他流行框架,如Struts、Tapestry和ASP.NET。Struts是一个基于MVC架构的框架,而Tapestry则是更加强调组件化。ASP.NET是微软的Web开发平台,侧重于服务器端控件。Wicket在这些框架的基础上提供了更为简洁的API和更好的组件复用机制。 1.3 Wicket的特性 - 更加纯粹的Java和OO:Wicket允许开发者直接使用Java类和对象来创建和管理Web组件。 - 分离关注点:界面和业务逻辑分离,有利于团队协作。 - 安全性:Wicket具有内置的安全机制,帮助防止XSS攻击等安全问题。 - 集群支持:Wicket能够无缝地在集群环境中运行。 - 控件复用:组件可以被多次使用,减少代码重复。 - 表单验证:Wicket支持在服务器端进行表单数据验证。 - Session类型安全:Wicket对Session的处理保证了数据的安全。 - 定制工厂:开发者可以自定义组件工厂,满足特定需求。 - 可懒加载的Model:Model对象可以根据需要延迟加载。 - 支持所有基本Html元素:Wicket能方便地操作和响应HTML元素。 - 动态图片:可以动态生成和更新图片。 - 数据分页:内置支持数据的分页显示。 - 树形控件:用于展示层次结构的数据。 - 国际化:支持多语言环境。 - 单元测试:易于编写和执行组件的单元测试。 1.4 Wicket的用途 Wicket适用于构建复杂、交互性强的Web应用,尤其适合那些需要大量用户输入和动态页面更新的项目。 1.5 Wicket的不足 虽然Wicket有许多优点,但也有其局限性,如学习曲线较陡峭,文档可能不够完善,以及可能缺乏某些特定功能的第三方库支持。 1.6 Wicket的前景 展望未来,Wicket有望继续发展和完善,增加更多功能,吸引更多的开发者加入到这个生态系统中。 2. 如何配置Wicket来开发Web程序 这部分内容指导读者如何设置开发环境,配置项目,以及使用Wicket的基本步骤,包括创建组件,绑定模型,处理用户交互,以及部署应用程序等。 《Wicket开发指南2006》是学习和理解Wicket框架的重要参考资料,对于想要掌握Wicket进行Web开发的Java程序员来说,是一本不可或缺的教程。
2011-11-28 上传
Wicket 是什么?简单点说,它就是一个基于Java 的Web 开发框架,与Struts,WebWork,Tapestry 相类似。其特点在于对Html 和代码进行了有效的分离(有利于程序员和美工的合作),基于规则的配置(减少了XML 等配置文件的使用),学习曲线较低(开发方式与C/S 相似),更加易于调试(错误类型比较少容易,而且容易定位)。如果 你不对微软并不反感,可以把它看作Java 平台上的ASP.NET。 Wicket 现在是Sourceforge 上一个非常活跃的项目,开发源码基于Apache 协议(也是最宽松,对商业最友好的的源码协议),项目位于http://wicket.sourceforge.net,另外它还有一个独立的域名网站http://www.wicketframework.org/。最新的消息则是,Wicket 已经成为Apache 孵化器中一个项目,可以通过http://incubator.apache.org/projects/wicket.html 来访问。但SourceForge 上的网站仍然可以访问。Wicket 出现时,著名的J2EE 网站TSS(即http://www.TheServerSide.com,以后简称TSS),对该项目也进行了讨论,有一段旷日持久的论战(地址:http://www.theserverside.com/news/thread.tss?thread_id=28162:),论战主力当然就是Wicket 的主要作者Jonathan Locke 和Tapestry 的作者Howard Lewis Ship ,争论的内容十分广泛,从URL 的格式到系统结构,从扩展性到界面开发,如果有时间的话,我尽量将其中部分内容翻译过来,还是很精彩的。(TSS 上很多的讨论都非常精彩,如果英文好的话,建议经常上去看看,国外的牛人就是多啊。有时候我也觉得很奇怪,这些人都不用睡觉的吗,看他们的帖子,完全覆盖了24 小时,感觉他们的老板真是宽容啊)。Wicket 的作者中有几个是原Sun 公司Swing 小组的开发人员(现在可能大部分已经不 是了),因此Wicket 的框架中带有浓厚的C/S 色彩。而他们的开发计划中,还包括了Swing,Flash 平台的支持,也就是说使用Wicket 不仅可以可以输出Html,而且可以支持Swing 和Flash,不过和朋友经过讨论后,觉得这个计划看起来有一点不切实际,毕竟 Html,Swing,Flash 之间的差别还是很大,恐怕想要无缝移植,还是有点难度的。单是一个JavaScript,恐怕就够头痛了。 Wicket 带有强烈C/S 结构的UI 色彩,这一点有助于美工和程序人员的分工,与Delphi 的开的方式非常类似(Delphi 使用Frm 文件保存UI 控件的定义,而用.pas 文件存储代码,从而对控件进行操作)。Wicket 则是使用Html 描述UI,并将具有特殊标记的Html 元素定义为UI 控件,在java 文件中则直接使用代码操作这些UI 控件,控制其输出面向构件成长社区http://gocom.primeton.com 独家首发 Wicket 开发指南SCA/SDO/SOA/Eclipse/BPEL/EOS 技术交流 @gocom.primeton.comgoCom 就是一起分享一起成长及行为,样式等。这一点和Tapestry,以及.NET 平台上的ASP.NET 极为相似,也怪不得与Tapestry 的作者争论了这么久,毕竟两者的用户群有很多的重复。其实从结构上看来,无论是Tapestry,ASP.Net,Wicket 估计都借鉴了Applet 平台上的WebObjects,还有Delphi。(不要忘了,Delphi 的创建者Anders Hejlsberg 就是.net 框架的架构师,所以C#和Asp.net 怎么看都带着Delphi 的影子。Wicket 目前最新的版本是1.2.2 版,已经支持了AJAX,但感觉这个框架的发展时间毕 竟还是短了一点,尽管设计思想很不错,但还是有许多问题存在的,包括控件的数量,BUG 较多等,希望2006 年它可以尽快的成熟起来。