DWR详细操作使用

来源:互联网 发布:通达oa端口 编辑:程序博客网 时间:2024/05/19 19:44

去官网下载dwr.jar包

http://directwebremoting.org/dwr/downloads/index.html


第一步、配置dwr servlet

 <!-- 配置dwrserlvet -->

  <servlet>      <servlet-name>dwrinvoker</servlet-name>      <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>      <!-- 自动生成测试页面(写上下列代码,项目启动后浏览器上输入这个url:http://ip:端口/项目名/dwr/index.html      页面上有个类的超链接点击后相信你会明白下一步该这么做) -->      <init-param>          <param-name>debug</param-name>          <param-value>true</param-value>      </init-param>  </servlet>   <!-- 配置映射关系 -->  <servlet-mapping>      <servlet-name>dwrinvoker</servlet-name>      <url-pattern>/dwr/*</url-pattern>  </servlet-mapping>


第二步、编写类

package com.chni.dwr;public class FirstDWR {    /**     * 调用js测试方法     * @param uname  传过来的用户名     * @return     */    public String getTime(String uname){                try {            Thread.sleep(5000);        } catch (InterruptedException e) {            e.printStackTrace();        }        return uname+"你好:服务器上的时间是:"+System.currentTimeMillis();    }}


第三步、在WEB-INF下配置新建一个dwr.xml 文件

<!-- dwr.xml 配置文件 --><!DOCTYPE dwr PUBLIC    "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN"    "http://getahead.org/dwr/dwr20.dtd">        <dwr>        <allow>        <!-- javascript调用类方法使用的名字 creator 创建类的方式   scope 存储范围        page/request/session/application/script        creator:职责实例化:方式  new 、none、spring 跟多详细信息建议网上吸收        -->            <create javascript="FirstDWR" creator="new" scope="request" >                <!-- 对应类 -->                <param name="class" value="com.chni.dwr.FirstDWR"/>                <!--                <exclude method="getTime"/>禁止页面上调用那些方法                <include method=""/>规定页面上只能调用那些方法                <filter class=""></filter>                <auth role="" method=""/>许你指定一个J2EE的角色作为将来的访问控制检查                 -->            </create>            <!-- bean的转换器,可以将com.pojos包下的所有类转换成Bean对象 可以模糊匹配(比如说com.chni.* 配置了com.chni包下所有类) -->            <!--                <convert match="实体类" converter=""></convert>             -->        </allow>    </dwr>



第四步、在页面上引用(运行起来你就可以看到效果了)

 

<title>简单的dwr实现</title>   <meta http-equiv="content-type" content="text/html; charset=UTF-8">   <!-- FirstDWR.js是DWR引擎自动生成的脚本 -->  <script type='text/javascript' src='/dwr/dwr/interface/FirstDWR.js'></script>  <!-- 这个文件是DWR的核心库,只要需要使用DWR就不能缺少该文件-->  <script type='text/javascript' src='/dwr/dwr/engine.js'></script>  <!-- dwr.util.js 是js的工具包 -->  <script type='text/javascript' src='/dwr/dwr/util.js'></script><script type="text/javascript">    //响应页面事件 调用java方法    function javaMethod(){        //获取页面文本框的值        var varStr=document.getElementById("name").value;        /*        还可以使用dwr中的组件名获取文本框的值        var varStr=dwr.util.getValue("userName");        */            /*调用服务器对应方法 第一个参数java需要传入的参数,            第二个参数处理完之后返回来的值        相当于sampleXMLHttpReq.onreadystatechange = processResponse;,        */        //页面加载        document.getElementById("none").style.display="inline";        FirstDWR.getTime(varStr,function(data){            if(data!=""){                document.getElementById("none").style.display="none";            }            document.getElementById("vardata").value=data;        });    }    //清除    function clare(){        document.getElementById("name").value='';        document.getElementById("vardata").value='';    }</script>  </head>   <body>    <pre>        你的用户名:        <input type="text" name="userName" id="name" onchange="javaMethod()"/>        <br>服务器回应:        <textarea cols="50" rows="5" name="serverReplay" id="vardata"></textarea>        <input type="button" value="清 除" onclick="clare()">        </pre>        <div align="center" id="none" style="display: none"><img src="images/load.gif"/></div></body></html>



0 0
原创粉丝点击