dwr框架异步调用简单小例

简介:        DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架。可以轻松实现用js直接调用java方法。

       DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架。可以轻松实现用js直接调用java方法。


       通过一个小例子来演示一个dwr的基本使用:

       ①. 首先肯定要创建一个web project的,然后拷贝dwr.jar到WEB-INF\lib目录下

       ②. 修改web.xml文件,添加dwr servlet配置

  <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>

       ③.  写自己的java类

package com.tgb.dwr;

/**
 * dwr使用测试
 * @author Admin
 *
 */
public class DwrTest {

	public String hello(){
		return "Hello!";
	}

}

       ④.  WEB-INF目录下创建dwr.xml配置文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://getahead.org/dwr/dwr20.dtd">
<dwr>
  <allow>
  	<!-- 一个实例对应一个create节点 -->
    <create creator="new" javascript="T1">
      <param name="class" value="com.tgb.dwr.DwrTest"/>
    </create>
  </allow>
</dwr>


       ⑤. 在jsp中,添加js文件的引用

<script type="text/javascript" src="dwr/engine.js"></script>
<script type="text/javascript" src="dwr/util.js"></script>
<script type="text/javascript" src="dwr/interface/T1.js"></script>


       引用的第三个js文件T1.js,文件名需跟dwr.xml配置文件中的javascript属性值相同。


       ⑥. 在jsp中写调用java方法的js代码

<script type="text/javascript">
function test1(){
	
	T1.hello(
		function(data){
			alert(data);
		}
	);
}
</script>

      上面的js代码,T1是跟dwr.xml配置文件中定义的javascript属性值相同。hello测试跟java类中的方法名一样,而且区分大小写。大小写不一致,控制台会提示:has no method 'xxx' 的错误。


       最后给一个测试的效果吧:


       dwr提供js直接调用java方法的功能,真心赶脚不错,虽然自己可以写异步请求,但是如果配置一下就可以使用,谁还会去费那些力气。赞一个吧。


目录
相关文章
|
12月前
|
NoSQL JavaScript 算法
调用第三方接口遇到的 13 大坑
调用第三方接口遇到的 13 大坑
|
12月前
|
安全 Java 程序员
面试题 | 异步任务的各种组合方式(一)
面试题 | 异步任务的各种组合方式(一)
98 0
|
前端开发
手写Promise最简20行版本,实现异步链式调用。(重构版)
在面试的时候,经常会有面试官让你实现一个 Promise,如果参照 A+规范来实现的话,可能面到天黑都结束不了。
|
前端开发
重新手写promise,理解核心的异步链式调用原理
重新手写promise,理解核心的异步链式调用原理
147 0
|
前端开发 编译器
让人头秃的promise-then执行顺序问题
`Promise`对于前端开发来说应该不陌生了,其主要用于在一个异步操作中返回结果值,并且支持链式调用。今天就来讨论一个`Promise`链式调用相关的面试题。
639 0
让人头秃的promise-then执行顺序问题
|
小程序 前端开发 JavaScript
小程序同步异步
小程序同步异步
154 0
|
存储 Java 程序员
在线程异步的场合下,如何将线程信息传递到调用处(1)
在线程异步的场合下,如何将线程信息传递到调用处
115 0
在线程异步的场合下,如何将线程信息传递到调用处(2)
在线程异步的场合下,如何将线程信息传递到调用处
131 0
|
C# UED
艾伟_转载:C# 委托的同步调用和异步调用
  委托的Invoke方法用来进行同步调用。同步调用也可以叫阻塞调用,它将阻塞当前线程,然后执行调用,调用完毕后再继续向下进行。   同步调用的例子: using System;using System.
897 0