基于J2EE的Ajax技术(3)

2019-03-28 14:58

} http_request.onreadystatechange = processRequest; // 确定发送请求的方式和URL以及是否同步执行下段代码 http_request.open(\ http_request.send(null); } // 处理返回信息的函数 function processRequest() {

if (http_request.readyState == 4) { // 判断对象状态

if (http_request.status == 200) { // 始处理信息 alert(http_request.responseText); } else { // alert(\ } } }

信息已经成功返回,开页面不正常

您所请求的页面有异常。\

引入DWR(直接WEB远程调用)

如同在“原始的Ajax”一节所演示的那样,直接使用XmlHttpRequest创建异步请求非常麻烦。不仅JavaScript代码冗长,而且必须考虑服务器端为定位Ajax请求到适当的服务所需做的工作,并将结果封送到浏览器。 设计DWR的目的是要处理将Web页面安装到后端服务上所需的所有信息管道。它是一个Java框架,可以很轻松地将它插入到Web应用程序中,以便JavaScript代码可以调用服务器上的服务。它甚至直接与Spring Framework集成(脚本对象能够调用Spring容器管理的bean),从而允许用户直接向Web客户机公开bean。

AJAX的框架

Prototime,Dojo,Dwr,Ajaxtags,buffale,Extjs,JQuery,Flex3

DWR真正的巧妙之处是,在用户配置了要向客户机公开的服务之后,它使用反射来生成JavaScript对象,以便Web页面能够使用这些对象来访问该服务。然后Web页面只需接合到生成的JavaScript对象,就像它们是直接使用服务一样;DWR无缝地处理所有有关Ajax和请求定位的琐碎细节。

DWR 是一个开放源码的使用 Apache 许可协议的解决方案,它包含服务器端 Java 库、一个 DWR servlet 以及 JavaScript 库。虽然 DWR 不是 Java 平台上唯一可用的 Ajax-RPC 工具包,但是它是最成熟的,而且提供了许多有用的功能

DWR 是什么?

DWR是Apache许可下的一个开源项目,它是一个非常专业的J2EE Ajax框架,可以将java组件的方法直接暴露给远程的javascript客户端。这种方式非常类似于java的远程方法调用,不同的是dwr中调用的客户端是javascript代码,而不是java代码。

通过使用dwr可以通过一种简单的方式开发Ajax应用。它的主要功能是将服务器端的代码暴露给客户端。当然它也提供了一套javascript函数集,从而简化DOM元素的操作,例如动态修改表的内容,用选项填充select下拉框,改变HTML元素的内容等

DWR专业还体现在与其他j2ee框架的整合上,DWR可以与spring 无缝整合,允许直接调用spring管理的Bean。不仅如此,他还可以与struts,webwork和jsf等框架整合。 DWR主要包括两部分:

1. 客户端的javascript,可以直接调用远程java方法,并根据远程方法的

返回值动态更新页面内容。

2. 服务器上运行的servlet,处理请求并把结果返回客户端的javascript代

码。

DWR会根据java类动态生成javascript代码,通过这些动态生成的javascript代码,将服务器端的java方法直接暴露给客户端的javascript让用户产生一个错觉:DWR可以通过javascript代码直接调用远程java方法,实际上DWR依然依赖XMLHttpRequest对象和服务器通信。其基本原理是:当开发者直接调用

远程java方法时,DWR会负责将这种调用转换成对应的XMLHttpRequest请求,并将请求发送到远程服务器端。当服务器处理完后,DWR再负责将处理结果传回客户端的javascript代码。这时要用到DWR的工具对象DWRUtil.他用来简化DOM的操作。

从最简单的角度来说,DWR 是一个引擎,可以把服务器端 Java 对象的方法公开给 JavaScript 代码。使用 DWR 可以有效地从应用程序代码中把 Ajax 的全部请求-响应循环消除掉。这意味着客户端代码再也不需要直接处理

XMLHttpRequest 对象或者服务器的响应。不再需要编写对象的序列化代码或者使用第三方工具才能把对象变成 XML。甚至不再需要编写 servlet 代码把 Ajax 请求调整成对 Java 域对象的调用。

DWR 是作为 Web 应用程序中的 servlet 部署的。把它看作一个黑盒子,这个 servlet 有两个主要作用:首先,对于公开的每个类,DWR 动态地生成包含在 Web 页面中的 JavaScript。生成的 JavaScript 包含存根函数,代表 Java 类上的对应方法并在幕后执行 XMLHttpRequest。这些请求被发送给 DWR,这时它的第二个作用就是把请求翻译成服务器端 Java 对象上的方法调用并把方法的返回值放在 servlet 响应中发送回客户端,编码成 JavaScript。DWR 还提供了帮助执行常见的用户界面任务的 JavaScript 工具函数。

xmlns:xsi=\xsi:schemaLocation=\ http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd\

dwr-invoker DWR Servlet

uk.ltd.getahead.dwr.DWRServlet

debug true

dwr-invoker /dwr/*

需要增加这个web.xml。uk.ltd.getahead.dwr.DWRServlet是DWR框架的核心类。除此之外,还必须增加一个dwr.xml文件。该文件负责java类和javascript对象之间的对应关系。

Dwr.xml:

\

\

value=\

match=\

value=\

dwr.xml 文档的根元素是 dwr。在这个元素内是 allow 元素,它指定 DWR 进行远程的类。allow 的两个子元素是 create 和 convert 在上面的配置文件中,最重要的元素是allow,没有他,dwr什么也干不了。Create元素用于定义如何将一个java类转换成一个javascript对象,而convert用于完成java类和javascript之间的转换。 Index.jsp

Username:

create 元素(创建器)

java对象必须被暴露成客户端的javascript对象才可以被调用。为了将java对象暴露成javascript对象,DWR 提供了创建器,创建器负责将java对象创建成javascript对象

dwr.xml文件的allow元素下的create子元素的大致格式如下:

Create元素用语创建一个javascript对象,create元素中的很多属性和子元素都是可选的,但通常需要指定两个属性:javascript属性用于指定创建的javascript对象的名字,creator则用于指定创建实例所使用的创建器。 DWR默认提供如下几个创建器。

1. New:该创建器使用new关键字创建java实例 2. None:该创建器不创建任何实例

3. Scripted:使用脚本语言,如BeanShell或Groovy通过BSF创建实例 4. Spring:直接使用spring容器中的bean, 用于DWR和spring的整合 5. Jsf:直接使用jsf容器中的bean, 用于DWR和jsf的整合 6.

7. Struts:直接使用struts中的formbean,用于struts和DWR整合 8. Pageflow:直接访问weblogic或Beehive的 PageFlow中的bean 9. Ejb3:这是一个实验性的创建器,建议谨慎使用 当然,最基本,最常用的创建器是new. 对于create元素,如下属性是通用的:

1. Javascript:当远程java对象被创建后,DWR负责将该对象暴露成客户端

的javascript对象,该属性用于指定这个javascript对象的名字

2. Scope:该属性非常类似于servlet规范中的scope,用于指定java实例的生

命范围,只能选择application,session,request,page其中之一,该属性可选。默认page

3. Param:被用来指定creator 其他相关参数,不同的创建器需要指定的

param是不一样的。例如:new创建器需要指定创建java实例的类

4. Include:如果java实例中包含五个方法,但只想有三个方法被暴露,则可

以使用include元素指定这三个方法。一旦使用了include元素, java对象的其他方法默认将不被暴露

5. Exclude:作用类似于include元素,但exclude元素用于指定不暴露的方

6. Auth:该元素指定一个j2ee角色。一旦指定了auth元素,该java对象的

方法将处于被保护的状态,只有具有auth属性指定的j2ee角色的用户才可以访问


基于J2EE的Ajax技术(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:初中生物总复习学案440 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: