分享
 
 
 

面向对象的Web 服务器Zope

王朝厨房·作者佚名  2007-01-05
窄屏简体版  字體: |||超大  

本文从网站开发者的角度,简要介绍了 Zope 的强大功能。对于网站开发人员来说是不可或缺的知识性文章。对于想要了解面向对象的 Web 编程人员来说,或许你会丢弃 ASP,PHP,JSP,转而对 Zope 投怀送抱。

一、介绍

Zope 是下一代开放源码应用服务器以及门户工具,由Digital Creations 开发,已经拥有一群相当活跃的用户社群。它既可以在所有Unix 平台上运行,也能在 Windows NT 上运行,不但能集成到其他流行的 Web 服务器,也带有自己的 Web 服务器。 Zope 采用 Python 语言编写,在性能敏感的部件上采用了 C 语言编写。

不像其他基于文件的 Web 模板系统,例如 ASP 或者 PHP,Zope 是高度面向对象的Web 开发平台。它提供了清晰的数据/逻辑/表示的分离,带有可扩展的内置对象和强大的集成安全模块。 Zope 架构让开发人员撇开了开发中的细节问题,诸如数据一致性,存取控制等。

Zope 提供了所有必须的工具,能集成来自任何数据源的所有的数据和内容,构成一个连续,可维护的 Web 应用,主要包括:

Web方式的管理界面

集成的存取控制

内容管理

企业数据存取

内置搜索工具

强大的数据共享

安全委托

Zope 和其他应用服务器不同之处在于,它从头开始就是不仅和Web 对象模型紧密结合,而且和Web 开发模型也紧密结合。当今成功的 Web 开发要求很多方面的专家合作开发。 Zope 做到了这些,能让网站管理员安全的授权给数据库专家,内容管理员以及设计专家。

二、Web 应用平台

让 Zope成为产品的技术就是基于 Web 从根本上来说是面向对象的。

Zope 中的对象是层次型的,就像我们熟悉的一些概念一样,例如文件夹,文档,图象,SQL 查询语句。 在Zope 的层次环境里,URL根据名字映射为其中的对象。例如URL:"/Marketing/index.html",映射为文件夹对象"Marketing" 下面名为“index.html”的文档对象。 Zope 对象的建立和管理十分方便,只要打开浏览器,进入管理界面,所有管理和应用开发界面都可以通过浏览器来完成,界面就像 Windows 的资源管理器。通过这个界面,开发人员不必存取服务器上的文件系统就可以创建Zope 对象或者定义新的对象类型。

对象可以放到对象层次的任意地方。网站管理员可以点击目录栏得到对象的不同“视图”,这些视图视对象类型不同而不同,对于 DTML 文档,可以有 “Edit”用来编辑文档源码,而数据库连接对象则让你修改连接字符串或者缓冲参数。所有的对象都有“安全”视图以控制存取权限。

Zope 对象存放在高性能的事务型对象数据库中,可以采用文件系统或者关系数据库作后台存储。每一个Web 请求作为对象数据库中分离的事务,如果应用中发生错误,请求事务就会自动回滚。同时,对象数据库还提供多级回退。网站管理员可以点击鼠标取消曾经做过的操作。Zope 框架让所有细节和事务对应用开发人员都透明。

三、内容管理

Zope 的心脏就是 DTML (文档模板标记语言),这个功能强大的变量插入和表达语言,提供对 Zope 对象的安全脚本和动态内容产生。 DTML 采用了服务器端包含脚本的语法,对很多 Web 开发人员来说很容易上手,而且和Zope 的安全模型高度集成。对安全的集成,可以让用户使用自己的 DTML 而不会对整个网站的安全构成威胁。

DTML 基本的变量插入和条件测试语句是十分直观的。DTML 代码采用 Zope 系统中对象的属性和方法,也可使用 Web 请求和表单中的变量。下面是一个文档标题属性显示的例子,当不同的用户登录时,显示不同的信息:

--------------------------------------------------------------------------------

本文档的标题为:<!--#var document_title--> 。

<P>

<!--#if "AUTHENTICATED_USER=='小地主'"-->

嘿!你好,小地主!

<!--#else-->

嘿!你好,陌生人!

<!--#/if-->

--------------------------------------------------------------------------------

当然 DTML 文档能包含其他 DTML 文档。一个常用的设计就是页面头和脚的包含:

--------------------------------------------------------------------------------

<!--#var standard_html_header-->

<H2>欢迎来到 www.FreeLAMP.com!</H2>

<!--#var standard_html_footer-->

--------------------------------------------------------------------------------

DTML 采用 #in 标记提供强大的递归插入。这个标记也可以用来自动管理批处理。下面的例子调用 SQL 查询对象,递归调用结果集数据建立表格:

--------------------------------------------------------------------------------

<TABLE>

<!--#in getEmployees-->

<TBODY><TR>

<TD><!--#var first_name--></TD>

<TD><!--#var last_name--></TD>

<TD><!--#var job_title--></TD>

<TD><!--#var hire_date--></TD>

</TR>

<!--#/in-->

</TBODY></TABLE>

--------------------------------------------------------------------------------

采用这些标记和其他更加高级的 DTML 结构,Web 开发人员能调用 SQL 查询语句,建立新的对象,操作对象属性,建立高度动态的网站内容。下面的例子采用了 DTML的 sendmail 标记来发送 Email。

--------------------------------------------------------------------------------

<!--#var standard_html_header-->

<!--#sendmail smtphost="mail.freelamp.com">

To: Feedback Department <feedback@freelamp.com>

From: Feedback Form <ff@freelamp.com>

Subject: 用户意见反馈

<!--#var name-->提出意见:

<!--#var comments-->

<!--#/sendmail-->

<H2>谢谢!</H2>

<P>

感谢您的建议!

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有