dwr用起来还是很方便的。

1:去官网下载dwr.jar包。我下载的是dwr-3.0.jar。

复制到WEB-INF/lib目录下。

2:在web.xml文件中添加dwr的信息:

Xml代码 dwr实现实时获取数据_数据库dwr实现实时获取数据_数据库_02

<servlet>  

<display-name>DWR Servlet</display-name>  

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

3:创建dwr的配置文件:dwr.xml

Xml代码 dwr实现实时获取数据_数据库dwr实现实时获取数据_数据库_02

<?xml version="1.0"encoding="UTF-8"?>

<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 3.0//EN" "http://getahead.org/dwr/dwr30.dtd">

<dwr>

<allow>
<!--dwr3提供的一个日志审核过滤器 ,可去掉,不太清楚原理-->
<filter class="org.directwebremoting.filter.AuditLogAjaxFilter"/>  
<!--这是我配置的一个演示类,javascript="Demo" 表示,我可以在页面中用Demo这个名称指向DwrDemo这个java类,类中的方法可以在前台调用-->
<create creator="new"javascript="Demo">
<param name="class"value="com.zzbj.qiao.searchRandom"/>
</create>
<!-- this is a bad idea for live, but can be useful in testing  可取代,不太清楚原理-->
<convert converter="exception"match="java.lang.Exception"/>
<convert converter="bean"match="java.lang.StackTraceElement"/>
</allow>
</dwr>

test映射project.entity.Test这个类。

如果是和sturts搭配使用的,要在struts.xml文件中添加一行代码,因为struts的/*会把所有的请求都有转到action的,这样dwr就不起作用,从web.xml文件中就可以看出来,所以要在struts.xml文件中注明:

Xml代码 dwr实现实时获取数据_数据库dwr实现实时获取数据_数据库_02
  1. <constantname="struts.action.excludePattern"value="/dwr.*"/>

4:上面这些配置好之后,可以打开服务器,访问:http://ip:8080/项目名/dwr,

可以看到有内容和一个映射的类的链接,点进去就能看到所需要的js文件,将三个.js文件都下载下来放到/dwr/路径中或者/dwr/interface/。

//路径问题要注意,js路径有问题无法报错啊,只是不执行,还是ctrl+点击  测验,

Js代码 dwr实现实时获取数据_数据库dwr实现实时获取数据_数据库_02
  1. <script type='text/javascript' src='js/dwr/test.js'></script>  

  2. <script type='text/javascript' src='js/dwr/engine.js'></script>  

  3. <script type='text/javascript' src='js/dwr/util.js'></script>  

5:开始写调用的js方法了:

Js代码 dwr实现实时获取数据_数据库dwr实现实时获取数据_数据库_02

<script type="text/javascript">  

//此函数中可以调用java类的方法,除了java方法本身的参数外,还要将回调函数名作为参数传给java方法  

  1. function sayHello(name){    

    window.setInterval("Demo.getHello(name,dwrHandler)",2000);

     // Demo.getHello(name,dwrHandler);

    }  

    //这是dwr的一个回调函数,data参数即java方法getHello(String name)的返回值  

    function dwrHandler(data){




    //var value=data; 即可对所选值进行操作。

       alert(data);  }  

    </script>  

    <div id="as"><h1>Hello World!</h1></div>  

  2. <script type="text/javascript">  

     sayHello("w");  

    </script>

</script>  

searchRandom是dwr允许js调用的java类,可以操作数据库,本类只是返回一随机数,2s执行一次,进而在方法dwrHandler中获取值

Html代码 dwr实现实时获取数据_数据库dwr实现实时获取数据_数据库_02
  1. <bodyleftmargin="0"topmargin="0"onload="MyShow()">

在body加载完就开始执行MyShow这个方法了。