DWR3.0框架入门(1) —— 实现ajax

来源:互联网 发布:excel时间自动刷新数据 编辑:程序博客网 时间:2024/06/06 01:23
框架简介:DWR(Direct Web Remoting)
     是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,可以帮助开发人员开发包含AJAX技术的网站。它可以允许在浏览器里的代码使用运行在WEB服务器上的JAVA函数,就像它就在浏览器里一样。

本Demo实现的基本功能:
点击jsp界面的按钮,通过DWR调用到服务器端的java代码,在控制台打印出jsp输入框中的值

Demo构建流程:

1.新建Web工程

2.导入jar包:commons-logging-x.x.x.jar和dwr3.0.jar

3.在web.xml中加入DWR使用能力:

[java] view plaincopy在CODE上查看代码片派生到我的代码片
  1. <servlet>    
  2.         <servlet-name> dwr-invoker </servlet-name>    
  3.         <servlet-class> uk.ltd.getahead.dwr.DWRServlet</servlet-class >   
  4.         <init-param>    
  5.             <param-name> debug</param-name >   
  6.             <param-value> true</param-value >  
  7.         </init-param>  
  8.         <init-param>  
  9.             <param-name> crossDomainSessionSecurity</param-name >  
  10.             <param-value> false</param-value >  
  11.         </init-param>  
  12.         <init-param>  
  13.             <param-name> allowScriptTagRemoting</param-name >  
  14.             <param-value> true</param-value >  
  15.         </init-param>  
  16. </servlet>   
  17. <servlet-mapping>    
  18.         <servlet-name> dwr-invoker </servlet-name>    
  19.         <url-pattern>/dwr/*</ url-pattern>   
  20. </servlet-mapping>  

4.在src中新建类MessagePush:

[java] view plaincopy在CODE上查看代码片派生到我的代码片
  1. package sugar.dwr;  
  2.   
  3. public class MessagePush {  
  4.   
  5.         public void send(String str){  
  6.               System. out.println(str);  
  7.        }  
  8. }  

5.与web.xml同级目录下创建dwr.xml,用来配置js函数与java代码的映射关系:

[html] view plaincopy在CODE上查看代码片派生到我的代码片
  1. <?xml version="1.0" encoding"UTF-8"?>   
  2. <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 3.0//EN" "http://getahead.org/dwr/dwr30.dtd" >   
  3. <dwr>    
  4.         <allow>    
  5.                <create creator="new" javascript"messagePush">   
  6.                       <param name="class" >sugar.dwr.MessagePush</ param>   
  7.                </create>  
  8.         </allow>    
  9. </dwr>  

6.在index.jsp中写入js逻辑(该处使用到jquery,请自行添加):

[java] view plaincopy在CODE上查看代码片派生到我的代码片
  1. <%@ page language= "java" import ="java.util.*" pageEncoding="UTF-8" %>  
  2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
  3. <html>  
  4.   <head >  
  5.     <title >DWR</ title>  
  6.     <script type= "text/javascript" src ="js/jquery-1.8.3.js"></ script>  
  7.     <script type= "text/javascript" src ="dwr/util.js"></ script>     
  8.         <script type="text/javascript" src= "dwr/engine.js"></script >   
  9.         <script type="text/javascript" src= "dwr/interface/messagePush.js" ></script>  
  10.   </head >  
  11.   <body >  
  12.         <table border="0" >  
  13.                <tr>  
  14.                       <td>< input id ="content" type="text" /></td>  
  15.                       <td>< input id ="send" type="button" value= "send"/></td >  
  16.                </tr>  
  17.         </table>  
  18.         <script type="text/javascript" >  
  19.               $( "#send").click(function(){  
  20.                       var content = $("#content" ).val();  
  21.                      messagePush.send(content);  
  22.               });  
  23.         </script>  
  24.   </body >  
  25. </html>  

说明:jsp文件中必须引入几个js,它们都是隐含存在的,不用考虑它们在哪儿。其中engine.js和util.js是固定的。另外的一个js的名称就是dwr.xml中配置的类名。

测试结果:


转自:http://my.oschina.net/sugarZone/blog/178853
0 0