返回顶部
首页 > 资讯 > 精选 >再谈Cocoon兼谈JSP (转)
  • 643
分享到

再谈Cocoon兼谈JSP (转)

2023-06-03 05:06:57 643人浏览 独家记忆
摘要

再谈Cocoon兼谈jsP (转)[@more@]一年前的旧文,今天看来仍有其价值。 发信人: HAX(海曦), 信区: WEBDevelop 标 题: 再谈Cocoon兼谈JSP 发信站: 饮水思源 (2002年06月06日01

再谈Cocoon兼谈jsP (转)[@more@]

一年前的旧文,今天看来仍有其价值。

 

发信人: HAX(海曦), 信区: WEBDevelop 标 题: 再谈Cocoon兼谈JSP 发信站: 饮水思源 (2002年06月06日01:17:17 星期四), 站内信件 著名的 IBM DW 中文网站,推出了Cocoon 2的简介教程,从而再次把我们的目光吸引到Cocoon上。以下是我在CSDN的XML讨论区发表的个人看法,贴过来涨点人气。 IBM的这个教程非常好,强烈推荐。BTW,IBM的DW网站比CSDN有用多了。 关于Cocoon,希望有一本《XSP/Cocoon/XML核心技术内幕》,基本上编译了一些基本的Cocoon文档,有一定的参考价值。这也是我看到的国内唯一的一本Cocoon的参考书。但是该书如同其它国内书籍一样,对于基本理念的阐述不够详细和清晰。 Cocoon的原始动力是为了实现Content-Style-Logic的三层分离,这是一个Web Engineer的很好的实践。 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的正式发布,其威力才真正显现。 从角色任务上看,程序员主要负责JavaBean、Servlet和编写自定义标签库(现在可以使用JSTL从而大大减少负担);设计者编写“不包含 java代码”的JSP,实际上是若干种标记的混合,HTML+JSTL+自定义标签。我认为这种框架比较适合于以Java程序员为主的团队,以及业务逻辑复杂的应用。 注意,正如JSP的内嵌Java代码可以实现业务逻辑,JSP的TagLib技术,一样可以用于实现业务逻辑。当然使用TagLib将比内嵌Java代码好许多,因为代码被封装到了TagLib中,因此对于小的应用还是可以使用JSP,而不用写Servlet。例如使用JSTL的sql tag,来直接处理数据库(这实际上意味着基本没有或者只有极其简单的包含在sql语句中的业务逻辑)。也可以用像之类的tag来处理业务逻辑,虽然通常应该只被用来处理显示逻辑。固然,这些功能会“引诱”一些人过度使用TagLib的能力而破坏了设计原则,但对于原型开发测试以及轻量级应用,实在是太有用了!如果是企业级应用,相信有能力做企业级应用的程序员,也会有足够的意识来按照mvc模式开发。 apache的struts是一个基于JSP实现MVC的很好的框架,建议有兴趣的同志研究研究。 而Cocoon,用XML表示数据(内容),用XSP(非常类似JSP的XML形式)编写业务逻辑,用xslT实现表示层(HTML、WML、某种格式的XML甚至pdf),并用sitemap(Cocoon 2)集中管理。XSP逻辑单则与JSP的 TagLib从概念到用法非常相似,只是实现方法略有不同。JSP的TagLib 包括一个xml格式的定义文件和实现的Tag类,并被编译使用;而XSP 逻辑单则在运行时(当然可以进行Cache)应用XSLT进行从标记到代码的转换。 (按照我对IBM教程的理解)事实上按照管道的概念,从原始数据到最终呈现可以有任意层,至于如何分层,每个层的用途,则在于设计者。这也是为什么Cocoon被定位于Web发布“框架”。 一个处理流程可以被描述为:(摘自IBM教程)从用户接受请求。确定用来解释该请求并生成响应的适当管道(使用匹配器)。从可用的预配置的组件构造管道。指示管道为请求服务。将由管道生成的响应返回用户,可能对结果进行高速缓存以便以后使用。 在JSP Model 2里,Servlet扮演“调度员”的角色,我们用它来控制任务分派,这有点类似管道所作的事情。事实上,Cocoon就是一个大 Servlet。只是Servlet在2.3之前缺乏管道机制,只能进行简单的 forward和include,如果需要多重处理机制,就不得不依靠扩展库(比如IBM的websphere),或者采用Cocoon。但是现在Servlet有非常强大的filter机制。这使得Cocoon与JSP越来越有结合的趋势。 但Cocoon的特点在于,除了核心功能(Core-Cocoon)之外,它还包括内部组件(包括Matchers、Generators、TransfORMers、Serializer s、Aggregators等)、内部逻辑单(Response、Sitemap、XSP、XSP- Request、Util、XSP-Cookie、Log等)。这样它就有一个非常适合Web 发布的环境。而使用JSP,相对来说,需要自己进行配置和写部分的基础代码。 从角色任务上看,站点管理员负责定义Sitemap,程序员主要负责XSP 逻辑单,设计者编写XSLT样式表(包括XSLT和目标代码如HTML),因为程序员和设计者都使用XSLT,其实就是在写格式转换,只是编写者需要熟悉如何处理输入和输出(如设计者要面对HTML,程序员要考虑 数据库)。此外,在此之前需要有额外的角色来定义所用到的XML或其他中间格式。我认为这种框架比较适合于非Java程序员为主的团队,管理员只要熟悉XML,程序员和设计者需要掌握XSLT;以及适合于业务逻辑相对简单,而着重于xml数据和灵活的格式转换需求的应用。 -- ※ 来源:·饮水思源 bbs.sjtu.edu.cn·[FROM: 202.120.15.34]


--结束END--

本文标题: 再谈Cocoon兼谈JSP (转)

本文链接: https://lsjlt.com/news/232901.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 再谈Cocoon兼谈JSP (转)
    再谈Cocoon兼谈JSP (转)[@more@]一年前的旧文,今天看来仍有其价值。 发信人: HAX(海曦), 信区: webDevelop 标 题: 再谈Cocoon兼谈JSP 发信站: 饮水思源 (2002年06月06日01...
    99+
    2023-06-03
  • 再谈ThinkPHP
        最开始我见到框架,我以为它是一个自动产生代码的机器,后来我发现,它更像一个脚手架,或者是工具箱,没有设计图纸,没有自己的构思,它是没有内容的。   ...
    99+
    2024-04-02
  • 再谈mvcc与vacuum
    再谈mvcc与vacuum 1简介 在pg的各种技术讨论和日常运维中,vacuum永远是主要的话题之一。 pg数据库管理运维过程中,经常会调整以下的vacuum参数,以优化数据库的性能 alter system set autovacuum...
    99+
    2021-12-11
    再谈mvcc与vacuum
  • 技术杂谈-再谈软硬SDN(2)
    不好意思,本文有点长,需要阅读10-15分钟。上一篇文章得到了很多朋友的反馈,软硬SDN各自有各自的优势和特点,对于之前的文字,有两个反馈。第一个是文字上的错误,在我的文章里,提到了“据我所知,国内的AWS,Azure和GCP,国内的BAT...
    99+
    2023-06-03
  • 技术杂谈-再谈软硬SDN(1)
    以下文章来源于微信公众号:网络里卖艺的小青年  ,作者KkBLuE  我曾在SDNLAB和TF中文社区联合举办的直播活动上做了一次分享,讨论到软件SDN和硬件SDN的话题,巧合的是,看到国内大牛厂家也在讨论软硬之路,于是...
    99+
    2023-06-03
  • 再谈在Java中使用枚举(转)
    再谈在Java中使用枚举(转)[@more@]从C++转到Java上的程序员一开始总是对Java有不少抱怨,其中没有枚举就是一个比较突出的问题。那么为什么Java不支持枚举呢?从程序语言的角度讲,支持枚举意味着什么呢?我们能不能找到一种方法...
    99+
    2023-06-03
  • 经验点谈在JSP中的声明. (转)
    经验点谈在JSP中的声明. (转)[@more@]在JSP中的声明:JSP中的声明有两种方法:一种是,另一种是,现在讲讲第二种.1、测试条件:假设有两个页面test1.jsp和test2.jsp都有如下代码:2、测试环境:Jrun3+jdk...
    99+
    2023-06-03
  • Android单元测试(2):再来谈谈为什么
      早上8点半坐到桌子前,打开电脑,看了几分钟体育新闻,做其他一些准备工作,到9点开始真正开始着手写这篇文章。于是开始google,找资料,打算列一大段冠冕堂皇的理由,来说...
    99+
    2022-06-06
    android单元测试 测试 Android
  • 再谈PHP未来之路
    这门语言现在到底处于生命周期的哪个阶段?其定位到底是怎样的?诸如 PHP7、Swoole 的出现到底能给 PHP 带来怎样的变化? 当我们拿 PHP 和 java 进行比较的时候,我...
    99+
    2024-04-02
  • 谈谈MySQL中的隐式转换
    工作过程中会遇到比较多关于隐式转换的案例,隐式转换除了会导致慢查询,还会导致数据不准。本文通过几个生产中遇到的案例来。 基础知识 关于比较运算的原则,MySQL官方文档的描述: https://dev.mysql.c...
    99+
    2022-05-25
    MySQL 转换 MySQL 隐式转换
  • 写了两年代码之后再来谈一谈Spring中的Bean
    目录(一)什么是Bean(二)如何往Spring容器中添加Bean(三)Bean的作用域(四)Bean的常用注解4.1 Conditional4.2 ComponentScan4.3...
    99+
    2024-04-02
  • 再谈PHP错误与异常处理
    目录一、异常与错误的概述PHP中什么是异常PHP中什么是错误上面的说法是有前提条件的PHP异常处理很鸡肋?二、ERROR的级别三、PHP异常处理中的黑科技1:set_error_ha...
    99+
    2024-04-02
  • day06 再谈编码 and 作业讲解
    1. 小数据池,(其他语言又叫常量池) id() 查看变量的内存地址 is和== is 判断内存地址是否一致 == 判断内容是否一致 小数据池的作用: 为了快速的创建字符串对象, 可以减少内存的浪费 用缓存的前提:数据可以被共...
    99+
    2023-01-30
    作业 再谈
  • 【Python之旅】第七篇(一):再谈P
        主要是再进一步加深Python中关于多线程相关函数join()的理解以解多线程的执行过程。这里通过下面的例子来作进一步的说明。1.多线程与主程序代码的执行顺序关系    给出下面程序代码:#!/usr/bin/env python ...
    99+
    2023-01-31
    之旅 再谈 第七篇
  • 浅谈JSP serverlet的区别与联系
    JSP(JavaServer Pages)和Servlet都是Java Web开发中的关键技术,用于构建动态Web应用程序。它们之间...
    99+
    2023-08-15
    jsp
  • 简单谈谈Python中的反转字符串问题
    按单词反转字符串是一道很常见的面试题。在Python中实现起来非常简单。 def reverse_string_by_word(s): lst = s.split() # split by ...
    99+
    2022-06-04
    字符串 简单 Python
  • 谈谈HTML页面跳转代码的各种方法
    HTML页面跳转代码是Web开发中非常重要的一部分。当用户点击一个链接或者按钮时,需要调用相关代码进行跳转,以便将用户引导到正确的页面。在本文中,我们将为您介绍HTML页面跳转代码的各种方法。一、使用超链接进行页面跳转最基本的跳转方式就是使...
    99+
    2023-05-14
  • MySQL alter table时执行innobackupex全备再谈Seconds_Behind_Master
    1.场景描述 早上7:25 接到Report中心同学告警,昨天业务报表数据没有完整跑出来,缺少500位业务员的数据,并且很快定位到,缺少的是huabei_order库上的数据。Report中心的数据是BI每天5:15从huabei_ord...
    99+
    2020-12-11
    MySQL alter table时执行innobackupex全备再谈Seconds_Behind_Master
  • JavaScript 运行机制详解再浅谈Event Loop
    目录一、为什么JavaScript是单线程?二、任务队列三、事件和回调函数四、Event Loop五、定时器六、Node.js的Event Loop一、为什么JavaScript是单...
    99+
    2024-04-02
  • 浅谈JSP与Servlet传值及对比(总结)
    JSP是Servlet技术的扩展,本质上是Servlet的简易方式,更强调应用的外表表达。 JSP编译后是”类servlet”。Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTM...
    99+
    2023-05-31
    servlet jsp 传值
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作