DWR1.0(AJAX)入门

原创 2006年06月13日 17:50:00
DWR处理逻辑  下载地址
把Java得方法转化成JavaScript(业务层)
再把Java得Bean转化成JavaScript对象(数据传输模型层)

一. 服务器端Java代码的编写


首先写好业务层,就是你要在客户端call服务器得方法集合   Chat.java

写好数据传输模型,就是java中要用到的封装好的JavaBean   Message.java


二. 配置Java代码以便DWR能解析Java

接下来配置dwr.xml,放在WEB-INF目录下

例子一:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 0.4//EN" "
http://www.getahead.ltd.uk/dwr/dwr.dtd">

<dwr>
<allow>
  <!-- 定义javascript生成器 new 表示 uk.ltd.getahead.dwr.create.NewCreator.class-->
  <create creator="new" javascript="Chat"> <!-- 表示在javascript建立一个Chat对象,每次都新建 -->
    <param name="class" value="Chat"/> <!-- 定义业务Bean所在的类路径 -->
  </create>
  <convert converter="bean" match="Message"/> <!-- 数据传输模型定义 -->
</allow>
</dwr>

例子二:

<dwr>
    <allow>
        <!-- 定义javascript生成器 spring 表示 uk.ltd.getahead.dwr.create.SpringCreator.class-->
        <create creator="spring" javascript="ajaxSampleSvc">
              <param name="beanName" value="ajaxSampleSvc" />
              <exclude method="toString"/> <!-- 在javascript中不生成toString方法 -->
              <exclude method="setArticleDao"/>
        </create>
        <convert converter="bean" match="com.tearesolutions.model.Article"/>
    </allow>
</dwr>


三. HTML编写

接下来我们写html页面

在html页面里有2个要点:

一个是业务层函数的调用,一个是回调函数。

其中业务层的函数返回值会传递给回调函数,以便回调函数处理。

举例说明:

这里Chat是业务层,

public class Chat
{
  public List addMessage(String text)
  {
    if (text != null && text.trim().length() > 0)
    {
        messages.addFirst(new Message(text));
        while (messages.size() > 10)
        {
          messages.removeLast();
        }
    }

    return messages;
  }

  public List getMessages()
  {
    return messages;
  }

  private static LinkedList messages = new LinkedList();
}



数据模型

public class Message
{
  public Message(String newtext)
  {
    text = newtext;
    if (text.length() > 256)
    {
        text = text.substring(0, 256);
    }
    text = text.replace('<', '[').replace('&', '_');
  }

  public long getId()
  {
    return id;
  }

  public String getText()
  {
    return text;
  }

  long id = System.currentTimeMillis();
  String text;
}




比如你要发送聊天信息:

在HTML中的JS:

导入JS:
<script type='text/javascript' src='/chat-demo/dwr/engine.js'></script>
<script type='text/javascript' src='/chat-demo/dwr/interface/Chat.js'></script> //生成Chat业务层
<script type='text/javascript' src='/chat-demo/dwr/util.js'></script>

function sendMessage()
{
    var text = DWRUtil.getValue("text");
    DWRUtil.setValue("text", "");
    //因为Chat的addMessage方法返回List消息,应该让回调函数gotMessages处理,text就是函数的真正变量
    //调用业务层方法的变量顺序:callback,parameters
    Chat.addMessage(gotMessages,text);
}

function gotMessages(messages) //在这里messages放着的都是Message对象的索引,就是数据模型
{
    var chatlog = "";
    for (var data in messages)
    {
        chatlog = "<div>" + messages[data].text + "</div>" + chatlog;
    }
    DWRUtil.setValue("chatlog", chatlog);

    setTimeout("checkMessages()", 1000);
}

配置DWR过滤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="chat-demo">
<display-name>Chat-Demo</display-name>
<servlet>
  <servlet-name>dwr-invoker</servlet-name>
  <display-name>DWR Servlet</display-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>

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

框架简介:DWR(Direct Web Remoting)      是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,可以帮助开发人员开发包含AJAX技术的网站。它可以允许在...

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

框架简介:DWR(Direct Web Remoting)      是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,可以帮助开发人员开发包含AJAX技术的网站。它可以允许在...

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

框架简介:DWR(Direct Web Remoting)      是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,可以帮助开发人员开发包含AJAX技术的网站。它可以允许在...

Ajax框架之DWR学习(简单入门案例)-yellowcong

DWR是一个AJAX的框架,可以实现通过js来调用java代码 的操作,这个东西我以前接触过,但是没有用来做过项目...

手把手教你用DWR实现js前台调用后台程序而不需要AJAX

手把手教你用DWR实现js前台调用后台程序而不需要AJAX 利用DWR组件实现前台直接操作后台数据 1.到http://download.csdn.net/detail/lishirong/401...

Ajax框架,DWR介绍,应用,例子

Ajax框架,DWR介绍,应用,例子

第一个ajax小实例(借助dwr包)

先说下引入这个dwr包的好处: 第一,它可以让js和后台语言交互,而且用户不用太了解它的逻辑。 第二,它可以让用户不用懂太宽泛的后台知识,只要会配置文件即可,不会涉及什么servlet。  ...

DWR反向Ajax的一个简单Web聊天

web.xml文件的配置 Xml代码   xml version="1.0" encoding="GBK"?>   web-app xmlns="http://java....

DWR框架对于Ajax的轻量级使用

DWR框架
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:DWR1.0(AJAX)入门
举报原因:
原因补充:

(最多只允许输入30个字)