`
peterwanghao
  • 浏览: 128374 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Jetspeed2中Ajax的支持

 
阅读更多

一、概述

Jetspeed2中实现了对Ajax的支持。客户端可以通过基于HTTP请求的API接口异步向服务端发送请求,得到xml格式的数据响应。

二、Ajax简介

AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScriptXML),是指一种创建交互式网页应用的网页开发技术。

Ajax 应用程序所用到的基本技术:

1HTML 用于建立 Web 表单并确定应用程序其他部分使用的字段。

2JavaScript 代码是运行 Ajax 应用程序的核心代码,帮助改进与服务器应用程序的通信。

3DHTML Dynamic HTML,用于动态更新表单。我们将使用 divspan 和其他动态 HTML 元素来标记 HTML

4)文档对象模型 DOM 用于(通过 JavaScript 代码)处理 HTML 结构和(某些情况下)服务器返回的 XML

AJAX不是指一种单一的技术,而是有机地利用了一系列相关的技术。

Ajax应用程序的优势在于:

1. 通过异步模式,提升了用户体验

2. 优化了浏览器和服务器之间的传输,减少不必要的数据往返,减少了带宽占用

3. Ajax引擎在客户端运行,承担了一部分本来由服务器承担的工作,从而减少了大用户量下的服务器负载。

Ajax的工作原理相当于在用户和服务器之间加了—个中间层,使用户操作与服务器响应异步化。这样把以前的一些服务器负担的工作转嫁到客户端,利于客户端闲置的处理能力来处理,减轻服务器和带宽的负担,从而达到节约ISP的空间及带宽租用成本的目的。Ajax的核心是JavaScript对象XmlHttpRequest。该对象在Internet Explorer 5中首次引入,它是一种支持异步请求的技术。简而言之,XmlHttpRequest使您可以使用JavaScript向服务器提出请求并处理响应,而不阻塞用户。

更多详细情况请参看相关文档说明。

三、功能

使用ajax接口可以实现以下功能:

<!--[if !supportLists]-->1、 <!--[endif]-->个性化页面布局:在一个页面里移动,复制,添加或移去一个portlet

<!--[if !supportLists]-->2、 <!--[endif]-->布局样式选择:在一个页面里改变布局样式,比如行数,列数。

<!--[if !supportLists]-->3、 <!--[endif]-->主题和装饰器选择:在一个页面里改变主题和portlet装饰器。

<!--[if !supportLists]-->4、 <!--[endif]-->Portlet选择:为用户提供一个portlet的选择列表。

<!--[if !supportLists]-->5、 <!--[endif]-->安全配置:对一个资源配置安全约束或安全方针。

<!--[if !supportLists]-->6、 <!--[endif]-->菜单配置:为portal站点创建或修改菜单。

<!--[if !supportLists]-->7、 <!--[endif]-->普通的管理:目前只有获取用户信息和用户列表,其他的管理功能还没有。

四、实现

AJAX的实现可以分为客户端和服务端两方面:

在服务端,所有的AJAX API请求都是一个标准的Jetspeed Pipeline请求,您可以根据需要自己定义处理流程。在预定义的AjaxPipeline里需要经过7Valve(阀门)。capabilityValveportalURLValvesecurityValvelocalizationValveprofilerValvecontainerValvelayoutValve。在layoutValve中定义了一个Spring component处理所有的AJAX请求——AjaxRequestService,根据不同的参数处理相应的请求。每一个AJAX处理都有一个自己的安全约束,在一个页面里的所有请求将使用整个页面配置的安全约束。根据不同的处理动作,需要判断是处于view模式下还是edit模式下。比如,获取信息的操作只要需要在view状态下;而添加,移动,删除等操作需要在edit状态下。

在客户端,AJAX客户端都是在javascript中调用。遗憾的是jetspeed2 中的javascript都被混淆了,不过可以查看别的资料去了解实现方式。比较核心的就是这么几个方法:

1、创建新的 XMLHttpRequest 对象

<script language="javascript" type="text/javascript">

var request = new XMLHttpRequest();

</script>

2、增加对 Microsoft 浏览器的支持

<script language="javascript" type="text/javascript">

var request = false;

try {

request = new XMLHttpRequest();

} catch (trymicrosoft) {

try {

request = new ActiveXObject("Msxml2.XMLHTTP");

} catch (othermicrosoft) {

try {

request = new ActiveXObject("Microsoft.XMLHTTP");

} catch (failed) {

request = false;

}

}

}

if (!request)

alert("Error initializing XMLHttpRequest!");

</script>

3、打开请求

request.open("GET", url, true);

4、设置回调方法

request.onreadystatechange = updatePage;

5、发送请求

request.send(null);

6、处理服务器响应

function updatePage() {

if (request.readyState == 4)

if (request.status == 200)

alert("Server is done!");

else if (request.status == 404)

alert("Request URL does not exist");

else

alert("Error: status code is " + request.status);

}

五、接口定义

Jetspeed2AJAX访问都是通过“ajaxapi”路径,后面跟随要操作的页面。如果没有指定就去访问当前用户的缺省页面。

对不同的请求有不同的请求参数,但其中有一个“action”参数是必须的,缺省的actiongetpage

例如:

http://localhost:8080/jetspeed/ajaxapi/Public/content.psml

具体的接口定义请参看Jetspeed2的官方网站,那里介绍的很详细,这里就不一一列举了。

六、参考资料

Jetspeed2官方网站

http://portals.apache.org/jetspeed-2/guides/guide-ajax-api.html

掌握AJAX系列 作者:Brett McLaughlin

http://www.ibm.com/developerworks/cn/web/wa-ajaxintro/

分享到:
评论

相关推荐

    jetspeed2

    标题 "jetspeed2" 暗示我们正在讨论一个开源的Java门户框架——Jetspeed 2。Jetspeed 2是一个高度可配置和可扩展的框架,用于构建企业级的Web门户应用。它允许开发者整合各种内容、应用和服务,提供统一的用户界面。...

    jetspeed中文文档 教程 总结

    接着是“Jetspeed2总结.docx”,这很可能是前公司同事在实际工作中对Jetspeed2特性和使用经验的总结。这份文档可能会包含一些实战技巧,比如如何创建和管理portlet,如何集成外部应用,以及在特定场景下的最佳实践。...

    Jetspeed2 Deployer Guide中文翻译

    在Jetspeed2的安全部署配置中,有两个主要的认证策略:Permissions(权限)和Constraints(约束)。Permissions基于Java安全策略,将策略存储在关系数据库中,提供标准的安全管理。而Constraints则是Jetspeed特有的...

    Jetspeed 整合资料

    在提供的压缩包文件中,"jetspeed1资料.zip"可能包含了Jetspeed 1的相关文档、源代码、示例和开发指南,而"Jetspeed2资料.rar"则可能包含Jetspeed 2的更新内容、教程和案例研究。这些资源对于想要学习和使用Jetspeed...

    jetspeed2资料

    Jetspeed2的核心功能包括portlet管理、个性化、内容聚合、权限控制等,支持多种portlet应用程序的集成。 2. **架构和组件** Jetspeed2的架构设计是模块化的,主要由以下几个关键组件组成: - Portlet容器:负责...

    Jetspeed2 Portal 门户技术开发文档

    1. **集成 STRUTS MVC 模式开发的应用程序**:通过Struts Portlet Bridge,可以将基于Struts的Web应用转换为portlet,使其在Jetspeed2门户中运行。 2. **集成 WEBWORK 开发的应用程序**:WebWork Portlet Bridge允许...

    Jetspeed2官网guide文档翻译2

    【Jetspeed2官网guide文档翻译2】这篇文档主要面向初次接触Jetspeed的用户,提供了从源码构建和部署Jetspeed 2.2的详细步骤。Jetspeed是一个开源的portlet容器和企业信息门户平台,它允许集成多种应用和服务,提供...

    jetspeed2样式的开发文档

    ### jetspeed2样式的开发文档解析 #### 一、概述 jetspeed2是一款基于Java的企业门户框架,它提供了丰富的功能来构建复杂的Web应用程序。本文档旨在帮助开发者理解jetspeed2样式的开发流程与细节,特别是关于如何...

    Jetspeed Tutorial中文翻译

    3. **企业整合**:Jetspeed2支持与企业现有的系统和服务进行整合,如ERP、CRM等,实现跨系统的数据交换和流程协作。 4. **个性化定制**:允许用户根据个人需求定制门户界面,比如调整布局、添加或移除组件等,满足...

    在JetSpeed中开发portlet项目

    在JetSpeed中开发portlet项目是一项涉及Java Web技术的重要工作,主要基于JSR168(portlet规范1.0)标准。JetSpeed是一个开源的企业门户服务器,它支持portlet的开发和集成,提供了一个灵活且可扩展的框架来构建企业...

    JetSpeed2开发文档的中文翻译

    综上所述,JetSpeed2是一个功能强大的企业门户框架,它不仅提供了一个完整的门户解决方案,还支持多种应用程序的集成。通过对Spring Framework的利用,J2能够提供更加灵活和可扩展的组件管理方式,使得开发者能够...

    jetspeed中文文档

    3. **portlet开发**:Jetspeed支持portlet开发,portlet是门户中的可重用组件。文档会讲解portlet的生命周期、portlet API的使用,以及如何创建和部署自定义portlet。 4. **个性化和安全**:Jetspeed允许用户定制...

    jetspeed-installer-2.2.2.jar

    Jetspeed是Apache组织开发的一个...Apache开源组织的企业门户项目,现有两个版本:jetspeed1与jetspeed2。由于jetspeed1在设计上的“缺陷”,现在已经升级到jetspeed2。目前大陆还没有成功使用jetspeed2开发的案例。

    JetSpeed2.doc

    JetSpeed2.0(简称J2)是Apache软件基金会旗下的一个开源企业级门户平台,其最终release版本于2005年12月发布。相较于早期的JetSpeed1.x(J1.x),J2在架构上进行了重大改进,不再依赖Turbine框架,而是引入了Spring...

    JetSpeed 高级portlet技术

    本文旨在深入探讨JetSpeed中的高级Portlet技术,特别关注如何利用JavaServer Pages (JSP) 和其他Web编程技术来创建更加动态和交互式的portlet。此外,还会介绍一些在官方文档中较少提及的技巧,帮助开发者提高工作...

    Jetspeed

    除此之外,Jetspeed 还支持portlet的概念,portlet 是一种可重用的Web组件,可以展示在门户页面的不同区域。Portlet可以是新闻提要、日历、邮件客户端等各种功能,它们可以来自不同的来源并根据用户需求进行排列和...

    jetSpeed2.2.2(最新版源文件)

    在jetSpeed-2-2.2.2压缩包中,你可能找到以下组件和文件: 1. **源代码**:这包含了 jetSpeed 的所有源代码,对于开发者来说非常有价值,他们可以通过阅读和修改源码来理解和定制jetSpeed的功能。 2. **文档**:...

    jetspeed2-开发手册

    ### jetspeed2-开发手册知识点概述 #### 一、Apache Jetspeed2简介 Apache Jetspeed2是一款用于构建企业级门户应用程序的开源框架。它提供了一系列工具和服务,支持开发者创建高度定制化的门户应用,同时集成了...

    Jetspeed2.0中的PSML介绍

    PSML不是Portlet标准接口的一部分,因而它是 Jetspeed 自己的实现方式,并且区别于早期的 Jetspeed 版本(如jetspeed-1),PSML在jetspeed-2中有其特定的实现。 PSML文件能够通过引用不同文件定义门户站点的相关...

Global site tag (gtag.js) - Google Analytics