[本站首页] [管理页面] [写新日志] [退出]

朝为田舍郎,暮登天子堂,将相本无种,男儿当自强。
首页(178) Hibernate(10) JAVA(19) Web(15) Struts(7) 口水(9) Ides(18) 其它(51) AJAX(6) database(29) 
Blog信息

blog名称:四裤全输的小窝~~
日志总数:178
评论数量:699
留言数量:198
访问次数:1151506
建立时间:2005年10月29日

Blog内搜索



日志更新

谷歌地图定位偏移解决方法
【转】利用Windows内置的命令作端口
WIN2003服务器安全加固方案
[转]sql server 日期比较、日
MediaCoder 一般参数设置
[转]VMware中创建共享磁盘阵列的方
缓解vss共享文件夹的安全隐患问题(转)
Delphi 中调用JavaScript
微软的官方方法:延长Windows Se
cxGrid 过滤 排序后 取选中记录的

最新评论

回复:谷歌地图定位偏移解决方法
回复:谷歌地图定位偏移解决方法
回复:WIN2003服务器安全加固方案
回复:cxGrid 过滤 排序后 取选中
回复:TreeView 父节点 子节点 
回复:[转]Oracle Instead
回复:DWR 官方下载地址
ugg  boots
回复:cxGrid 过滤 排序后 取选中
回复:DWR 官方下载地址

友情链接

biglin's Blog
NoisyRam's Blog
Stone's Blog
Kevin 的小家
『知』治通鉴

留言板




[AJAX]DWR的研究 
文章收藏,  网上资源,  软件技术,  电脑与网络 四裤全输 发表于 2006/10/13 15:48:14

转自:http://ziyang.blogdriver.com/ziyang/1014386.html最近在研究Ajax的时候,发现一个DWR东东,试用了一下,确实感觉不错!Ajax是什么东西?google了一下:Ajax不是一个技术,它实际上是几种技术,每种技术都有其独特这处,合在一起就成了一个功能强大的新技术。Ajax包括:XHTML和CSS使用文档对象模型(Document Object Model)作动态显示和交互使用XML和XSLT做数据交互和操作使用XMLHttpRequest进行异步数据接收使用JavaScript将它们绑定在一起那么Ajax到底有什么用呢?相信大家都已经知道Google Sugguest,很酷是吧。它就是采用Ajax技术,准确地说,应该是Google Sugguest出来,才把Ajax推向高峰。他的用处就是能够消除Web的刷新,当我们向服务端取数据的时候,通常会请求如user.action,然后返回一些数据再刷新页面,造成用户的等待,那么Ajax使用类似iframe或隐藏帧那种,取数据的时候他不会刷新页面。下面举个简单的例子来说明 Ajax的强大之处。页面index.html:<_input type="text" name="testText"><_input type="button" name="get" onclick="getText()">test.jsfunction getText() { var req = newXMLHttpRequest();  // 从后台取数据,新的URL应该是test.action?action=get req.open("POST", "test.action", true); req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); req.send("action=get); // 根据后台返回的数据,放入setText(reply)函数中,再在这个函数再进行处理相应的HTML req.onreadystatechange = getReadyStateHandler(req, setText);}function setText(text) {  // 设置index.html中的输入框的值  document.testText.value=text;}ajax.js function getReadyStateHandler(req, responseXmlHandler) {   // Return an anonymous function that listens to the XMLHttpRequest instance   return function () {     // If the request's status is "complete"     if (req.readyState == 4) {             // Check that we received a successful response from the server       if (req.status == 200) {         // Pass the XML payload of the response to the handler function.         responseXmlHandler(req.responseXML);       } else {         // An HTTP problem has occurred         alert("HTTP error "+req.status+": "+req.statusText);       }     }   } }就可以实现不用刷新页面就能从后台得到想要的数据并放入输入框中。那么DWR是什么呢?它具有动态生成javascript代码;隐藏的http协议;javascript于java代码交互的是javascript对象(或字符串)等.下面引自javaeye的一篇帖子:DWR主要由两部门组成。javascript与web服务器通信并更新web页;运行在web服务器的Servlet处理请求并把响应发回浏览器。DWR 采用新颖的方法实现了AJAX(本来也没有确切的定义),在java代码基础上动态的生成javascript代码。web开发者可以直接调用这些 javascript代码,然而真正的代码是运行在web服务器上的java code。出与安全考虑,开发者必须配置哪些java class暴露给DWR.(dwr.xml)这种从(java到javascript)调用机制给用户一种感觉,好象常规的RPC机制,或RMI or SOAP.但是它运行在web上,不需要任何浏览器插件。DWR 不认为浏览器和web服务器之间协议重要,把系统界面放在首位。最大挑战是java method call的同步特征与ajax异步特性之间的矛盾。在异步模型里,结果只有在方法结束后才有效。DWR解决了这个问题,把回调函数当成参数传给方法,处理完成后,自动调用回调方法。这个图表显示了,通过javascript事件,DWR能改变select的内容,当然这些内容由java代码返回。 javascript函数Data.getOptions(populateList)由DWR动态生成,这个函数会调用java class Data类的方法。DWR处理如何远程调用,包括转换所有的参数和返回的结果(javascript\java)。java方法执行完后,执行回调方法 populateList。在整个过程中我们就想在用本地的方法一样。2、Getting Started废话少说,试试就ok了。web.xml<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"><web-app id="dwr"><servlet><servlet-name>dwr-invoker</servlet-name><servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class></servlet><servlet-mapping><servlet-name>dwr-invoker</servlet-name><url-pattern>/dwr/*</url-pattern></servlet-mapping></web-app>dwr.xml 与web.xml同目录<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" "http://www.getahead.ltd.uk/dwr/dwr10.dtd"><dwr><allow><create creator="new" javascript="JDate"><param name="class" value="java.util.Date"/></create></allow></dwr>index.html<_html><head><title>DWR - Test Home</title><script type='text/javascript' src='dwr/interface/JDate.js'></script><script type='text/javascript' src='dwr/engine.js'></script><script>function init(){JDate.getYear(load);}function load(data){alert(data+1900+'年')}</script></head><body onload="init()"></body><_/html>dwr.jar 下载放lib下完了,什么,够了,就这些。访问ok!


阅读全文(4460) | 回复(0) | 编辑 | 精华


发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)
站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.031 second(s), page refreshed 144757705 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号