CNET中国旗舰网站

ZDNet China | CNET科技资讯网 | 政府采购 | 行业网站联盟





 
标题: [转贴] 让Ajax更加闪光-高手搞明白的问题:DWR实例展现--DWR让ajax变得如此简单
mz89757053
元老
Rank: 12Rank: 12Rank: 12



UID 304999
精华 0
积分 78200
帖子 4923
威望 37042
ZD币 6120 元
阅读权限 245
注册 2008-3-10
状态 离线
  楼主
发表于 2008-3-18 12:40  资料  个人空间  短消息  加为好友 
开发者在线

让Ajax更加闪光-高手搞明白的问题:DWR实例展现--DWR让ajax变得如此简单

ajax在DWR里实现     
  dwr:   
  是一个开源的项目,提供了更方便的调用向服务器端请求以及获取数据的方式。其功能远不止下面例子中所用到的,访问http://getahead.ltd.uk/dwr/获得更详细的信息。   
  dwr实践:   
   
  环境准备   
  1、从http://getahead.ltd.uk/dwr/download   下载dwr.war   
  2、从   http://tomcat.apache.org/   下载tomcat   5.5.x版本;   
  3、如果没有jdk,请到java.sun.com下载   1.5.x版本;   
  4、解压dwr.war,我们需要dwr/WEB-INF目录下的web.xml,dwr.xml,/lib/dwr.jar三个文件   
   
  开发自己的web应用:   
  1、在tomat中创建自己的web应用startajax   
  2、编写文件   index.html:   
  <html>   
  <head>   
  <title>   now   start   ajax   </title>   
  <meta   http-equiv="Content-Type"   c/>   
  <script   type="text/javascript"   src="./dwr/interface/FirstAjax.js"></script>   
  <script   type="text/javascript"   src="./dwr/engine.js"></script>   
  <script   type="text/javascript"   src="./dwr/util.js"   ></script>   
   
  <script   type="text/javascript">   
   
  function   sendMessage(msg)   
  {   
  alert   ("123");   
  var   msgvalue   =   document.getElementById(msg).value;   
  FirstAjax.getGreetings(loadMessage,   msgvalue);   
  }   
   
  function   loadMessage(data)   
  {   
   
  document.getElementById("message").innerHTML   =   data;   
  }   
  </script>   
   
  </head>   
   
  <body>   
  <h2>   ajax   is   coming....</h2>   
   
  <table>   
  <tr>   
  <td>following...</td>   
  </tr>   
  <tr>   
  <td>   
  <input   type="text"   name="msg"   size="30">   
  <input   type="button"   value="click   me"   name="tt"   >   
  </td>   
  </tr>   
  <tr>   
  <td>   
  <div   id="message"></div>   
  </td>   
  </tr>   
  </table>   
  </body>   
  </html>   
   
  3、将web.xml复制到startajax的WEB-INF目录下   
  <?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>   
  <init-param>   
  <param-name>debug</param-name>   
  <param-value>true</param-value>   
  </init-param>   
  <load-on-startup>1</load-on-startup>   
  </servlet>   
   
  <servlet-mapping>   
  <servlet-name>dwr-invoker</servlet-name>   
  <url-pattern>/dwr/*</url-pattern>   
  </servlet-mapping>   
   
  </web-app>   
   
  4、在startajax/WEB-INF目录下创建lib目录,并将dwr.jar复制到此目录下;   
  5、编写com.ajax.start.FirstAjax.java   类   并编译   
  package   com.ajax.start;   
   
  /**   
  *   User:   sunwj   
  *   Date:   2005-11-10   
  */   
  public   class   FirstAjax   
  {   
  public   String   getGreetings(String   user){   
  return   "hello   {"+user+"   }   "+new   java.util.Date();   
  }   
  }   
   
  6、创建dwr.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="FirstAjax"   >   
  <param   name="class"   value="com.ajax.start.FirstAjax"/>   
  </create>   
  </allow>   
   
  </dwr>   
  部署文件:按以下目录   
  ${catalina_home}webappsstartajax   
  index.html   
  WEB-INFweb.xml   
  WEB-INFdwr.xml   
  WEB-INFlibdwr.jar   
  WEB-INFclassescomajaxFirstAjax   
   
  启动tomcat   在地址栏键入   
  http://localhost:8080/startajax/   
  即可看到效果;   
   
   
  总结:自己曾在很早看过dwr的应用,但是没看明白,主要是卡在对回调函数的理解上。   
   
  这个例子完成之后,觉得这一切真的很简单。整个过程1个小时足够了。   
   
  看完觉得怎么样,欢迎大家讨论,若有疑问,请高手们来解答!   
   
  http://java.itpub.net/post/20968/188480




顶部
热点频道推荐: C/S开发| 数据库| WEB开发| 嵌入式| 项目管理|
mz89757053
元老
Rank: 12Rank: 12Rank: 12



UID 304999
精华 0
积分 78200
帖子 4923
威望 37042
ZD币 6120 元
阅读权限 245
注册 2008-3-10
状态 离线
  沙发
发表于 2008-3-18 12:40  资料  个人空间  短消息  加为好友 
DWR实现Ajax应用的确很简单,它完成XmlHttpRequest对象的实例化、异步请求的发送、数据的远程调用、XML数据的打包解包及数据的透明传输工作,对于开发人员来说,只需要将数据请求交给DWR去做,接受它传回的数据再做处理就可以了。   
   
  DWR远程调用Web服务器端的方法后,结果返回给回调函数,由回调函数完成对页面内容的修改




顶部
热点频道推荐: C/S开发| 数据库| WEB开发| 嵌入式| 项目管理|