下一代网络开发框架Stripes

开发 后端
网络开发框架Stripes,该框架在2005年发布,不久前发布了1.5版。但国内业界似乎对其很少提及,本文作者就个人感受,对Stripes略加介绍。

软件的展示层(presentation layer)是最麻烦的。以网络应用为例,软件的最终输出,须以符合HTML的要求。此外,尚需对HTML元素进行修饰和定位,这就用到了CSS技术。如果进一步,可能还需要用到DHTML和Ajax。也就是说,还需要应用JavaScript技术。

而网络框架的功能主要有两个:

1.把程序数据以后台软件组件(如ActionBean等)的形式注入到展示层,同时把展示层传入的用户动作导入到后台组件,激活业务处理等;

2.提供页面浏览定义功能。简单的说,就是把展示层与后台组件合理有效地组合到一起。

这就出现了一个问题,由于展示层用到了较多的技术,网络框架应该尽可能保持透明,不要扭曲甚至掩盖了这些基本技术。然而Struts、JSF等显然没有满足这一要求,它们提供了太多的标签(tag lib),它们不知道Tags就是API。大家学习HTML Tags是心甘情愿的,因为HTML是标准和通用的;但学习个别框架的tags就很抵触。如果打开一个JSP源代码,里面到处都是框架的tag,这就太让人头痛了。可以想象,这个公司用Struts,那个公司用JSF,对于开发人员来说将是多么痛苦的一件事,这是两套API啊!

另一个突出的问题便是配置文件。自从XML兴起,配置文件就成了第一头痛的问题。可以说,XML不论是对人还是对机器,都是不友好的。但Java社区过去片面追求灵活性(flexbility),低耦合(loose coupling)及其它诸多不切实际的华丽词藻,XML配置文件满天飞。以Struts为例,你可能要配置Form数据,navigation数据,validation数据等等。你可以想象,一个中等规模的网络应用的相关配置文件将会是如何庞大。这还没有记入后台其它组件的配置文件。这就会给你一种感受:写代码容易,让J2EE程序转起来难,弄好配置文件更难。有人感叹过:我们是用Java写程序还是用XML来写程序?!

如果留心观察,Spring的兴起,无非是借了EJB2的东风。因为后者太繁琐了,尤其是配置问题和资源注入方式。而EJB3的兴起,则是实事求是,总结了EJB2的经验,吸取了Spring的优点。EJB3最显著的改进便是将XML配置文件去除!而用annotation取而带之,并提供合理的缺省值。

很明显,下一个成功的网络开发框架,必然要在透明度、配置、后台资源注入等方面有一个质的飞跃。这当然需要广泛采用annotation技术。另一个最重要的要求,就是力求“简单”。

好了,说了半天,似乎没有涉及Stripes,其实不然。Stripes在配置(不需要自己的配置文件)、资源注入、validation、透明度等诸多方面均令人满意,而且很容易与EJB3或Spring等结合。Stripes的tag及annotation的数量很少,也很容易上手。

Stripes:是一个视图框架用于利用最新的Java技术来构建Web应用程序.它具有以下特点:不需要对每一page/action进行映射配置(ActionBeans将自动被发现,它利用注释进行配置),强大的绑定引擎用于构建复杂并脱离请求参数(request parameter)的web对象,易于使用并可本地化的验证与类型转换系统.可重复使用ActionBean作为视图帮助类.支持一个form对应多个事件.透明的文件上传能力.支持持续开发(比如在构思你的ActionBean之前可以先构建与测试JSP)等.

【编辑推荐】

  1. 基于Stripes框架进行Java Web开发
  2. 解决Jsp页面URL中传递参数乱码的方法
  3. JSP安全编程实例浅析
责任编辑:杨鹏飞 来源: 51CTO整理
相关推荐

2022-10-14 08:31:10

2013-07-27 21:28:44

2016-01-26 11:58:12

2013-06-27 11:21:17

2013-05-10 09:36:04

下一代网络锐捷网络简网络

2021-05-22 23:01:21

人工智能网络安全

2015-10-19 17:15:33

网络架构/华三

2013-09-09 16:28:36

2020-09-27 17:27:58

边缘计算云计算技术

2022-06-17 14:48:38

物联网住房危机数据

2020-09-16 10:28:54

边缘计算云计算数据中心

2011-06-30 11:02:22

2014-05-09 13:18:54

iOS移动互联网

2013-07-27 21:41:14

APT攻击下一代威胁

2012-10-29 12:23:44

BYODIT

2018-09-25 07:00:50

2018-09-27 18:47:45

AIOpsDevOps

2009-04-06 08:42:18

Firefox浏览器

2015-09-28 16:24:34

YARNHadoop计算

2012-12-12 10:29:57

点赞
收藏

51CTO技术栈公众号