DWR之DWR实例(1)

来源:互联网 发布:百合蕾丝炫浪网络社区 编辑:程序博客网 时间:2024/05/18 01:37

  1. 原文出处:http://blog.csdn.net/fhd001/article/details/7063281

DWR之DWR实例(1)

----------

1.首先向项目中加入dwr.jar文件,这里我们使用maven构建,同时dwr还要依赖commons-logging.jar包,如例(pom.xml):

[html] view plaincopy
  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  2.     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">  
  3.     <modelVersion>4.0.0</modelVersion>  
  4.     <groupId>aaa</groupId>  
  5.     <artifactId>bbb</artifactId>  
  6.     <packaging>war</packaging>  
  7.     <version>0.0.1-SNAPSHOT</version>  
  8.     <name>bbb Maven Webapp</name>  
  9.     <url>http://maven.apache.org</url>  
  10.     <dependencies>  
  11.         <dependency>  
  12.             <groupId>junit</groupId>  
  13.             <artifactId>junit</artifactId>  
  14.             <version>3.8.1</version>  
  15.             <scope>test</scope>  
  16.         </dependency>  
  17.         <!-- 必需的依赖 -->  
  18.         <dependency>  
  19.             <groupId>org.directwebremoting</groupId>  
  20.             <artifactId>dwr</artifactId>  
  21.             <version>3.0.M1</version>  
  22.         </dependency>  
  23.         <!-- 必需的依赖 -->  
  24.         <dependency>  
  25.             <groupId>commons-logging</groupId>  
  26.             <artifactId>commons-logging</artifactId>  
  27.             <version>1.1.1</version>  
  28.         </dependency>  
  29.     </dependencies>  
  30.     <build>  
  31.         <finalName>bbb</finalName>  
  32.     </build>  
  33. </project>  


2.在web.xml文件中增加DWRSevlet的配置,DWR指定映射路径的js(如:带有/dwr)都由这个servlet处理,就像这些路径的js(带有/dwr的路径):

[html] view plaincopy
  1. <script src='/[YOUR-WEBAPP-CONTEXT]/dwr/interface/[YOUR-SCRIPT].js'></script>  
  2. <script src='/[YOUR-WEBAPP-CONTEXT]/dwr/engine.js'></script>  

这两个件都是虚拟文件,并不是真实的文件。

web.xml的配置如下:

[html] view plaincopy
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  3.     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"  
  4.     version="2.4">  
  5.   
  6.     <display-name>firstDWR</display-name>  
  7.   
  8.     <welcome-file-list>  
  9.         <welcome-file>index.jsp</welcome-file>  
  10.     </welcome-file-list>  
  11.   
  12.     <!-- The DWR Servlet... -->  
  13.     <servlet>  
  14.         <display-name>DWR Servlet</display-name>  
  15.         <servlet-name>dwr-invoker</servlet-name>  
  16.         <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>  
  17.         <!-- 初始化参数,增加调试功能 -->  
  18.         <init-param>  
  19.             <param-name>debug</param-name>  
  20.             <param-value>true</param-value>  
  21.         </init-param>  
  22.         <!-- 跨域调用配置信息,不是必须的 -->  
  23.         <init-param>  
  24.             <param-name>crossDomainSessionSecurity</param-name>  
  25.             <param-value>false</param-value>  
  26.         </init-param>  
  27.     </servlet>  
  28.     <servlet-mapping>  
  29.         <servlet-name>dwr-invoker</servlet-name>  
  30.         <url-pattern>/dwr/*</url-pattern>  
  31.     </servlet-mapping>  
  32.   
  33. </web-app>  


3.创建dwr.xml文件(与web.xml在同一个目录):

[html] view plaincopy
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE dwr PUBLIC   
  3.     "-//GetAhead Limited//DTD Direct Web Remoting 3.0//EN" "http://getahead.org/dwr/dwr30.dtd">  
  4. <dwr>  
  5.     <allow>  
  6.         <create creator="new" javascript="MathDelegate">  
  7.             <param name="class" value="app.MathDelegate" />  
  8.         </create>  
  9.     </allow>  
  10. </dwr>  


4.创建java文件,如:MathDelegate.java文件:

[java] view plaincopy
  1. package app;  
  2.   
  3. /** 
  4.  * 数值计算 
  5.  * @author fuhd 
  6.  */  
  7. public class MathDelegate {  
  8.   
  9.     /**加法*/  
  10.     public int add(int a,int b){  
  11.           
  12.         return a+b;  
  13.     }  
  14.       
  15.     /**减法*/  
  16.     public int subtract(int a,int b){  
  17.           
  18.         return a-b;  
  19.     }  
  20.       
  21.     /**乘法*/  
  22.     public int multiply(int a,int b){  
  23.           
  24.         return a*b;  
  25.     }  
  26.       
  27.     /**除法*/  
  28.     public int divide(int a,int b){  
  29.           
  30.         return a/b;  
  31.     }  
  32. }  

5.创建jsp文件(可以是html或其它模板的文件),如:index.jsp :

[html] view plaincopy
  1. <html>  
  2.     <head>  
  3.         <title>firstdwr</title>  
  4.         <script type="text/javascript" src="dwr/interface/MathDelegate.js"></script>  
  5.         <script type="text/javascript" src="dwr/engine.js"></script>  
  6.         <script>  
  7.             var a = 0;  
  8.             var b = 0;  
  9.             var op = "";  
  10.             function doMath(){  
  11.                 a = document.getElementById("numA").value;  
  12.                 b = document.getElementById("numB").value;  
  13.                 op = document.getElementById("op").value;  
  14.                 if(op == "add"){  
  15.                     MathDelegate.add(a,b,doMathCallback);  
  16.                     op = "+";  
  17.                 }else if(op == "subtract"){  
  18.                     MathDelegate.subtract(a,b,doMathCallback);  
  19.                     op = "-";  
  20.                 }else if(op == "multiply"){  
  21.                     MathDelegate.multiply(a,b,doMathCallback);  
  22.                     op = "*";  
  23.                 }else if(op == "divide"){  
  24.                     MathDelegate.divide(a,b,doMathCallback);  
  25.                     op = "/";  
  26.                 }  
  27.             }  
  28.             var doMathCallback = function(answer){  
  29.                 document.getElementById("resultDiv").innerHTML = "<h1>" +   
  30.                     "Result: " + a + " " + op + " " + b + " = " + answer + "</h1>";  
  31.             };  
  32.         </script>  
  33.     </head>  
  34.     <body>  
  35.         <span id="resultDiv"></span>  
  36.         Please enter two numbers,select an operation,and click the equals button:  
  37.         <br><br>  
  38.         <input type="text" id="numA" size="4"/>  
  39.            
  40.         <select id="op">  
  41.             <option value="add">+</option>  
  42.             <option value="subtract">-</option>  
  43.             <option value="multiply">*</option>  
  44.             <option value="divide">/</option>  
  45.         </select>  
  46.            
  47.         <input type="text" id="numB" size="4"/>  
  48.            
  49.         <input type="button" value="=" onclick="doMath();"/>  
  50.     </body>  
  51. </html>  
  52. 原文出处:http://blog.csdn.net/fhd001/article/details/7063281
原创粉丝点击