DWR上手指南

来源:互联网 发布:武汉大学数据库 编辑:程序博客网 时间:2024/04/29 08:53
本人也是刚刚学习,把自己遇到的一点问题总结一下,尽量全面点,给其他朋友带来帮助。

首先将
https://dwr.dev.java.net/files/documents/2427/87007/dwr.jar
https://dwr.dev.java.net/files/documents/2427/87008/dwr.war
https://dwr.dev.java.net/files/documents/2427/87009/dwr-2.0.3-src.zip
这三个文件载下来。好,废话少说,我们开始演示步骤。

我的环境是jdk1.5,tomcat5.5(先说一下,我在用tomcat6生成js文件的时候,提示我访问被拒绝。)

先建WEB工程,叫DWRDemo吧。
将DWR.JAR放到dwrDeom/WebRoot/WEB-INF/lib下
打开web.xml,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
    xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
        <servlet-name>dwr-invoker</servlet-name>
       
        <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
        <init-param>
            <param-name>debug</param-name>
            <param-value>true</param-value>
        </init-param>
        
</servlet>
<servlet-mapping>
        <servlet-name>dwr-invoker</servlet-name>
        <url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
</web-app>
这些是配置信息,基本不用改。

在与web.xml同目录下,建一个dwr.xml,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://www.getahead.ltd.uk/dwr/dwr20.dtd">
 <dwr>
     <allow>
         <create creator="new" javascript="Dwrdemo">
             <param name="class" value="demo.Dwrdemo" />
         </create>
     </allow>
 </dwr>

注:creator="new",表示调用类的默认构造函数生成对象。
    javascript="Dwrdemo" 表示在javascript里通过该变量调用类里方法,也就是下面jsp页用所使用的对象。
    value="demo.Dwrdemo" 这个是包名和类名。

Dwrdemo.java,内容如下:

package demo;
public class Dwrdemo{
   
    public String sayHello(String name) {
    //可以是访问数据库的复杂代码
       
        return "Hello  " + yourName;
    }
   
}
注:这个类是没有好说的,就跟写平时的类差不多。
这个类主要以后就会生成一个js的脚本文件Dwrdemo.js

index.jsp 内容如下:
注意:以下三个文件是必须引入的
      util.js和engine.js,可以从dwr-2.0.3-src/java/org/directwebremoting中获得
      Dwrdemo.js是同过访问http://localhost:8080/dwrDeom/dwr/获得

<%@ page language="java" pageEncoding="UTF-8"%>
 <html>
  <head>
   <title>My JSP 'first_dwr.jsp' starting page</title>
    <script type='text/javascript' src='dwr/util.js'></script>
    <script type='text/javascript' src='dwr/engine.js'></script>
    <script type='text/javascript' src='dwr/interface/Dwrdemo.js'> </script>
    <script type="text/javascript">    
  function update(){
       
    var name = dwr.util.getValue("demoName");
    Dwrdemo.sayHello(name, function(data) {
    dwr.util.setValue("demoReply", data);
  });  
        }        
    </script>
  </head>
  <body>
  name:<input type="text" name="demoName"/>
  <input value="Send" type="button" onclick="java:update()"/>
<br>
  Reply: <span id="demoReply"></span>
  </body>
  </html>

好。到这里基本OK了,现在开始测试了。
首先访问
http://localhost:8080/dwrDeom/dwr/
目的是为了,测试公共方法,和获得由DWR生成的js脚本文件(Dwrdemo.js,当我刚看DWR时候,看网上很多朋友,都不知道再哪里找这个文件。这里特别指出一下。)
如果正常显示的话,那就说明你成功了。可以将生成的Dwrdemo.js文件内容复制下来。存到相应的目录下。
如果有500或403的错误,那就自己再看看问题是哪里吧。可以去网上找找。
当这步完成了,你就可以了去看看你的首页了。
http://localhost:8080/dwrDeom/index.jsp。
一个AJAX的网页就诞生了,希望大家都成功。