DWR的基本用法

使用DWR可以很轻松的让你javascript调用java的类文件的方法,是不是觉得很兴奋呢,好,看个简单的例子

前提是你的JSP环境已经搭建好了。

第一步,首先要下载必须的东西。

http://getahead.ltd.uk/dwr/
下载dwr.jar,放到WEB-INF/lib下,这是dwr的开发包。
找不到就给你直接下载的链接你吧
https://dwr.dev.java.net/files/documents/2427/87007/dwr.jar
这是version2.0.3版本的,这是开源的项目,有兴趣的还可以拿来看看,dwr.war包里面也有一些自带的例子,这里就不说了。

第二步,配置你的DWR。

dwr要使用servlet,所以要配置web.xml

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="dwr">
  <display-name>DWR (Direct Web Remoting)</display-name>
  <description>A Simple Demo DWR</description>
  <listener>
    <listener-class>org.directwebremoting.servlet.EfficientShutdownServletContextAttributeListener</listener-class>
  </listener>
  <listener>
    <listener-class>org.directwebremoting.servlet.EfficientShutdownServletContextListener</listener-class>
  </listener>
  <listener>
    <listener-class>org.getahead.dwrdemo.gidemo.PublisherServletContextListener</listener-class>
  </listener>
  <servlet>
    <servlet-name>dwr-invoker</servlet-name>
    <display-name>DWR Servlet</display-name>
    <description>Direct Web Remoter Servlet</description>
    <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>activeReverseAjaxEnabled</param-name>
      <param-value>true</param-value>
    </init-param>
    <init-param>
      <param-name>initApplicationScopeCreatorsAtStartup</param-name>
      <param-value>true</param-value>
    </init-param>
    <init-param>
      <param-name>maxWaitAfterWrite</param-name>
      <param-value>100</param-value>
    </init-param>
    <!--
    <init-param>
      <param-name>org.directwebremoting.extend.ServerLoadMonitor</param-name>
      <param-value>org.directwebremoting.impl.PollingServerLoadMonitor</param-value>
    </init-param>
    -->
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>dwr-invoker</servlet-name>
    <url-pattern>/dwr/*</url-pattern>
  </servlet-mapping>
</web-app>




另外dwr也有自己的dwr.xml配置文件,也是/WEB-INF/下面,这个文件配置你的javascript允许使用哪些java类文件等控制,具体就另外再看看相关文档了。

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 creator="new" javascript="TestClass">
      <param name="class" value="cn.gzgi.test.TestClass"/>
    </create>
  </allow>
  
</dwr>




这里的红色部分就是在javascript里使用时的名称,对应的就是使用的是蓝色部分的cn.gzgi.test.TestClass的这个类了。

第三步,编写的你的DWR应用。

1.编写cn.gzgi.test.TestClass

TestClass.java类

程序代码
package cn.gzgi.test;

public class TestClass
{
    public TestClass() {
    }
    public String sayHello(String str) {
        String temp = "";
        temp = "Hello:" + str;
        return temp;
    }
}




很简单就只有一个sayHello方法

2.html页面编写

test.html文件

 程序代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>dwr Demo</title>
  <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
  <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/TestClass.js'> </script>
</head>
<body>
<script>
function hello() {
var user = $('user').value;
    TestClass.sayHello(user, callback);
}
function callback(msg) {
var user = $('user').value;
if(user.length<=0){
  DWRUtil.setValue('result', '');
}else{
  DWRUtil.setValue('result', msg);
}
}
</script>
<input id="user" type="text" οnkeyup="hello()"/>
<div id="result"></div>
</body>
</html>




上面的/dwr/engine.js,/dwr/util.js,/dwr/interface/TestClass.js是系统自动生成的,只需要在页面嵌套进去就可以了。
/dwr/interface/TestClass.js就是对应你写的cn.gzgi.test.TestClass类。

是不是很简单呢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小黑师傅

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

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

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

打赏作者

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

抵扣说明:

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

余额充值