加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

dwr入门

发布时间:2020-12-16 03:30:48 所属栏目:百科 来源:网络整理
导读:由于最近要写一个在线的聊天工具,找到了这个比较不错的开源工具。 - DWR (Direct Web Remoting) 最后的架构是希望SSH2 + DWR3实现比较复杂的在线聊天功能。 废话少说,马上开始。(开发工具:Eclipse Indigo + Tomcat7) 第一个DWR3程序 第一步:导入需要的

由于最近要写一个在线的聊天工具,找到了这个比较不错的开源工具。 - DWR (Direct Web Remoting)

最后的架构是希望SSH2 + DWR3实现比较复杂的在线聊天功能。

废话少说,马上开始。(开发工具:Eclipse Indigo + Tomcat7)


第一个DWR3程序


第一步:导入需要的两个Jar包:(下载地址:http://directwebremoting.org/dwr/downloads/index.html)

  • dwr.jar
  • commons-logging-1.1.1.jar

第二步:创建web.xml文件 (目录在WebContent/WEB-INF/lib/下)

[html] view plain copy
print ?
  1. <?xmlversion="1.0"encoding="UTF-8"?>
  2. <web-appxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee"xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"id="WebApp_ID"version="2.5">
  3. <servlet>
  4. <display-name>DWRServlet</display-name>
  5. <servlet-name>dwr-invoker</servlet-name>
  6. <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
  7. <init-param>
  8. <param-name>debug</param-name>
  9. <param-value>true</param-value>
  10. </init-param>
  11. </servlet>
  12. <servlet-mapping>
  13. <url-pattern>/dwr/*</url-pattern>
  14. </servlet-mapping>
  15. </web-app>
第三步:创建dwr.xml文件 (放在与web.xml同一个目录下)

copy
<!DOCTYPEdwrPUBLIC
  • "-//GetAheadLimited//DTDDirectWebRemoting3.0//EN"
  • "http://directwebremoting.org/schema/dwr30.dtd">
  • <dwr>
  • <allow>
  • <!--注意,Javascript的类名必须要和真正的class名称一致,否则会报错-->
  • <createcreator="new"javascript="DwrTest">
  • <!--具体在server端实现的类-->
  • <paramname="class"value="com.eztalk.bean.DwrTest"/>
  • </create>
  • </allow>
  • </dwr>
  • 第四步:根据上面暴露出的class,写具体的类

    [java] copy
    ?
      packagecom.eztalk.bean;
    1. publicclassDwrTest{
    2. publicStringtest(Stringmessage)
    3. {
    4. System.out.println("getMessage:"+message);
    5. return"hello:"+message;
    6. }
    7. }

    第五步:写客户端的界面:

    copy
    <%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%>
  • <!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
  • <html>
  • <head>
  • <metahttp-equiv="Content-Type"content="text/html;charset=UTF-8">
  • <title>DRM3Test</title>
  • <!--注意以下两个javascript的顺序不能随便改
  • 1.第一个是engine.js文件,由dwr.jar包提供
  • 2.第二个是根据自己写的类生成的js文件,格式为/{appname}/dwr/interface/{在dwr中暴露的javascript类名.js}
  • 3.如果对script的写法不好掌握,可以调用以下URL查看:
  • http://urlname/appname/drw/
  • -->
  • <scripttype='text/javascript'src='/ezTalk/dwr/engine.js'></script>
  • <scripttype='text/javascript'src='/ezTalk/dwr/interface/DwrTest.js'></script>
  • <scripttype="text/javascript">
  • functionsendMessage()
  • varmessage=document.getElementById("message").value;
  • alert(message);
  • //直接用dwr.xml中暴露出来的类来调用,第一个是方法test的传入参数,最后一个是回调的方法
  • DwrTest.test(message,showMessage);
  • //回调方法
  • functionshowMessage(data)
  • {alert(data);}
  • </script>
  • </head>
  • <body>
  • <inputtype="text"id="message"name="message"/>
  • <inputtype="button"value="sendmessage"onclick="sendMessage()"/>
  • <divid="returnmessage"></div>
  • </body>
  • </html>

  • 第六步:收工测试 -测试OK

    eclipse中的目录结构:


    第七步:注意事项

    1. dwr.xml中javascript的名字和类名必须一致,我试着用不同的名字来代替,结果就悲剧了.--纠正一下,这个说法是错误的,我重启了一下Tomcat Sever,用不同的Javascript名字也可以正常运行了。 --Nov-6 2011
    2. dwr自动生成的script脚本在客户端是有先后顺序的,engine.js必须放在前面,自己生成的js文件要放到后面,否则也会报错。
    3. 最好是根据官方网站的例子来写,写法比较标准
    4. 对于客户端的javascript错误,最好用firefox+firebug插件来跟踪,这里我犯了几个错误,都是靠firebug发现的,比方说dwr.xml中的javascript class定义错误.
    5. 一点点的耐性

    建议看官方guideline

    http://directwebremoting.org/dwr/introduction/getting-started.html#fiveSteps


    http://blog.csdn.net/bruesz/article/details/6931994

    (编辑:李大同)

    【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

      推荐文章
        热点阅读