DWR使用

本文介绍如何使用 Direct Web Remoting (DWR) 实现 AJAX 功能。内容涵盖 DWR 的安装配置步骤,包括导入必要的 JAR 包、配置 web.xml 和 dwr.xml 文件等,并通过示例展示了服务端 Java 类的编写及 HTML 页面与 DWR 的交互过程。

DWR笔记

:凡颜色相同者都是必须内容完全一致!

1.     导入dwr.jar;

2.     配置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>

  <!--    <init-param>  

             <param-name>crossDomainSessionSecurity</param-name>  

             <param-value>false</param-value>  

    </init-param>

    -->

 </servlet>

 <servlet-mapping>

    <servlet-name>dwr-invoker</servlet-name>

    <url-pattern>/dwr/*</url-pattern>

 </servlet-mapping>

 

 

</web-app>

<!-- org.directwebremoting.servlet.DwrServlet 2.X-->

<!--uk.ltd.getahead.dwr.DWRServlet 1.X-->

 

3. 写服务端代码(写类)

:

package com.sk.dwr;

 

public class Test {

//返回一般数据

   public String getString(String s){

      return s+"Hello";

   }

//返回对象

Public String getUser(String name){

   Return new User(name);

}

}

4. web.xml同目录下添加并配置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标签

 <allow>:要暴露给js的方法,可以有多个

     <create creator="new" javascript="Hello">

<!—new表示调用无参构造new对象,Hello表示new出的对象的句柄,用于在js中调用 -->

      <param name="class" value="com.sk.dwr.Test"/>

<!—name表示类,value指定类的完整路径 -->

     </create>

<!-- java方法返回对象时,必须指定对象及其要暴露给js的属性 -->

      <convert converter="bean"

        match="com.sk.dwr.Person"/>

<!--       ,用于取对象的属性(有几个就写几个)

            <param name="include" value="username,password" /> -->

 </allow>

</dwr>

 

5.     HTML(jsp)页面

:

<meta http-equiv="Context-Type" content="text/html; charset=UTF-8">

<html >

<head>

<title>TabContainer Demo</title>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta>

<script type='text/javascript' src="<%=request.getContextPath()%>/dwr/interface/Hello.js"></script>

//Hello.js由dwr生成,于要调用的页面,引用Hello.js

<script type="text/javascript" src="<%=request.getContextPath()%>/dwr/engine.js"></script>

<script type="text/javascript" src="<%=request.getContextPath()%>/dwr/util.js"></script>

 <!--//**注意:/dwr红色部分必须与web.xml的/dwr部分相同,否则,js报错**-->

<script type="text/javascript">

var person;

 function call()

    //主调函数;

        var nameValue=document.getElementById("name").value;

        //alert(nameValue);

      Hello.getString(nameValue,callback);

//Hello.getUser(nameValue,callback);//参数1,java方法需要的参数,参数2,调用回调函数,dwr自动把返回的数据放入callback的参数内!

      //JDate.toString(callback);

   }

 function callback(User) {

//回调函数;

 DWRUtil.setValue("mydiv",User);

//若User为ArrayList,则User[i].username

//alert(User.password);

 }

</script>

</head>

<body>

     <table>

<tr>

<td>Name:</td>

<td><input id="name" type="text"/>

<input type="button" value="Read" onclick="read()"/>

</td>

</tr>

</table>

<div id="mydiv"></div>

</body>

</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gamebox1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值