专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »Java教程 » cocoon:再谈Cocoon兼谈JSP(转载) »正文

cocoon:再谈Cocoon兼谈JSP(转载)

来源: 发布时间:星期一, 2009年2月23日 浏览:0次 评论:0
【以下文字转载自 WebDevelop 讨论区】JAVA中文站社区门户 j R:Y8W U ].H3z!_T.r2|+W
【原文由 HAX 所发表】JAVA中文站社区门户(` G }}$Sq kB/q
著名 IBM DW 中文网站WebSite推出了Cocoon 2介绍教程从而再次把我们目光吸引到Cocoon上以下是我在SDNXML讨论区发表个人看法贴过来涨点人气JAVA中文站社区门户#a I2qX[-U*o @5\
IBM这个教程非常好强烈推荐BTWIBMDW网站WebSite比CSDN有用多了有关Cocoon希望有XSP/Cocoon/XML核心技术内幕基本上编译了些基本Cocoon文档参考价值这也是我看到JAVA中文站社区门户M(b7Y:u4_z
国内唯本Cocoon参考书但是该书如同其它国内书籍对于基本理念阐述不够详细和清晰JAVA中文站社区门户8C!p:f}#N7z#VK tVl
Cocoon原始动力是为了实现Content-Style-Logic 3层分离这是个Web Engineer很好实战JAVA中文站社区门户q2RB(t9L6t*~m_i
Cocoon也源自于以前ServerPages技术(主要是针对JSP当然ASP和PHP也有同样问题)缺陷尽管JSP提出了JSP Model 2来实现Model-View-Controller分离即用JavaBean表示数据(内容)用Servlet控制业务逻辑用JSP实现显示逻辑和表现层但还是有些实战上缺陷有关这个问题描述在2000年10月文章JSP 技术 -- 是友还是敌?(http://www-900.ibm.com/developerWorks/cn/java/w-friend/index.shtml)中有详尽讨论但是如果我们跟上技术发展步伐就会看到这个问题由于标签库技术成熟和servlet过滤器机制诞生而得到解决TagLib早就有了但是直到临近JSTL即JSP Standard Tag Library正式发布其威力才真正显现JAVA中文站社区门户D1s KJ-Wt'Z FY_
从角色任务上看员主要负责JavaBean、Servlet和编写自定义标签库(现在可以使用JSTL从而大大减少负担);设计者编写“不包含java代码”JSP实际上是若干种标记混合HTML+JSTL+自定义标签我认为这种框架比较适合于以Java员为主团队(Team)以及业务逻辑复杂应用注意正如JSP内嵌Java代码可以实现业务逻辑JSPTagLib技术样可以用于实现业务逻辑当然使用TagLib将比内嵌Java代码好许多代码被封装到了TagLib中因此对于小应用还是可以使用JSP而不用写Servlet例如使用JSTLsql tag来直接处理数据库(这实际上意味着基本没有或者只有极其简单包含在sql语句中业务逻辑)也可以用像<c:>、forEach>的类tag来处理业务逻辑虽然通常应该只被用来处理显示逻辑固然这些功能会“引诱”些人过度使用gLib能力而破坏了设计原则但对于原型开发、测试以及轻量级应用实在是太有用了!如果是企业级应用相信有能力做企业级应用也会有足够意识来按照MVC模式开发
V/R0K-`$m5R}ApacheStruts是个基于JSP实现MVC很好框架建议有兴趣同志研究研究而Cocoon用XML表示数据(内容)用XSP(非常类似JSPXML形式)编写业务逻辑用XSLT实现表示层(HTML、WML、某种格式XML甚至PDF)并用sitemap(Cocoon 2)集中管理XSP逻辑单则和JSPTagLib从概念到使用方法非常相似只是实现思路方法略有区别JSPTagLib包括个xml格式定义文件和实现Tag类并被编译使用;而XSP逻辑单则在运行时(当然可以进行Cache)应用XSLT进行从标记到代码转换JAVA中文站社区门户 W&X7E$b]
(按照我对IBM教程理解)事实上按照管道概念从原始数据到最终呈现可以有任意层至于如何分层每个层用途则在于设计者这也是为什么Cocoon被定位于Web发布“框架”
gkN%Q9r^T个处理流程可以被描述为:(摘自IBM教程)从用户接受请求
d&F,Ft.B zq确定用来解释该请求并生成响应适当管道(使用匹配器)
PI\g*Xx从可用预配置组件构造管道JAVA中文站社区门户C.f1_ d}Pk3A
指示管道为请求服务JAVA中文站社区门户6vmH,GyV$h
将由管道生成响应返回用户可能对结果进行高速缓存Cache以便以后使用
9{'E7G6|5Ln在JSP Model 2里Servlet扮演“调度员”角色我们用它来控制任务分派这有点类似管道所作事情事实上Cocoon就是个大Servlet只是Servlet在2.3的前缺乏管道机制只能进行简单forward和如果需要多重处理机制就不得不依靠扩展库(比如IBMWebSphere)或者采用Cocoon但是现在Servlet有非常强大filter机制这使得Cocoon和JSP越来越有结合趋势
8|/k t%l'vl%j但Cocoon特点在于除了核心功能(Core-Cocoon)的外它还包括内部组件(包括Matchers、Generators、Transformers、Serializers、Aggregators等)、内部逻辑单(Response、Sitemap、XSP、XSP-Request、Util、XSP-Cookie、Log等)这样它就有个非常适合Web发布环境而使用JSP相对来说需要自己进行配置和写部分基础代码
XV2zzsX3ru;Q从角色任务上看站点管理员负责定义Sitemap员主要负责XSP逻辑单设计者编写XSLT样式表(包括XSLT和目标代码如HTML)员和设计者都使用XSLT其实就是在写格式转换只是编写者需要熟悉如何处理输入和输出(如设计者要面对HTML员要考虑数据库)此外在此的前需要有额外角色来定义所用到XML或其他中间格式我认为这种框架比较适合于非Java员为主团队(Team)管理员只要熟悉XML员和设计者需要掌握XSLT;以及适合于业务逻辑相对简单而着重于xml数据和灵活格式转换需求应用JAVA中文站社区门户6E;_QI4t(n:e
※转载:· bbs.sjtu.edu.cn

7N|p%^)fO t5Y:P5C
\eUuL&Z'kR
'|U [/{4lS u^RU[ 本帖最后由 mylovejave 于 2008-12-20 02:02 编辑 ]

TAG: JSP Jsp Cocoon
0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: