翻译:为什么是Wicket(二)

Posted on 2007-06-07 16:47 Tommy Jian 阅读(2886) 评论(1)  编辑  收藏 所属分类: Wicket

动机

    目前存在的大多数Web框架对于服务端的状态管理都仅仅提供了较弱的支持。

    这就意味着在Web应用程序中存在着很多特殊的代码来处理和维护繁复的状态管理机制。虽然Wicket并不允许对服务端的状态完全不考虑,但是它在状态管理的简便性和透明化方面做了很多的工作。

    在Wicket中,所有服务端的状态都被纳入了自动的管理。您始终不需要直接使用HttpSession对象或者类似的封装对象去存储状态信息。相反,状态信息已经都与组件关联起来,而在组件后端的数据模型都是传统的Java对象(POJO)。Wicket在每个用户会话期内维护着页面的映射表(Map)。这个页面映射表(以及每个一面内的组件层次)的目的在于使得框架隐藏了组件以及数据模型访问的细节。您只需要处理简单而熟悉的Java对象,而Wicket则处理诸如URL、会话期标识以及GET/POST请求的任务。

    您接着也会发现这种结构良好的服务端状态使得解决令人恐惧的“后退按钮问题”变得十分的容易。实际上,针对页面内组件数据模型的结构性变化带来的数据过期,Wicket提供了通用而且健壮的解决方案,这个方案可以有效地对浏览器缓存页面进行甄别和过期检测。

    最后,Wicket在设计的时候就考虑与诸如JDO和Hibernate的普通Java对象(POJO)序列化框架协同工作。这一点使得构建数据驱动的Web应用程序显得非常简单。

    对于很多应用程序来说,必须在额外服务端状态导致服务器负载增加和其带来的好处之间进行权衡,服务端状态管理可以降低开发成本、减少维护成本、加快对市场的响应时间以及生产高质量的软件。这里提出的基本观点是:软件是十分昂贵、复杂的,而来自于E-machines和Dell的服务器则相对便宜。

    在效率和生产性方面,Wicket对JSP的优越性则犹如Java语言对C语言一样。您使用Wicket可以实现的功能使用JSP也都可以实现。甚至于在内存和CPU消耗方面效率也非常的高。但是使用JSP开发应用程序则需要耗费您更多的时间。最后,因为在JSP中进行状态管理时使用了特别的方式,您可能发现不少的安全问题,也能看到到处蹦出来的错误。上面提及的大部分框架在这方面仅仅提供了有限的辅助。


    注:本文由Jonathan Locke编写,相关权利由原作者承担。

Feedback

# re: 翻译:为什么是Wicket(二)  回复  更多评论   

2007-08-12 11:49 by wicket
http://www.wicket.com. 欢迎大家一起交流

只有注册用户登录后才能发表评论。


网站导航: