一个Ajax Project[url]http://getahead.ltd.uk/dwr/[/url],DWR,就是有点像远程方法调用,但是它的文档里强调过,这个远程方法的调用是安全的,所有安全问题应该不需要担心。

下面测试个简单的例子,算是开始。这个例子是来自它的文档的一篇文章,主要是实现一个类似聊天室的东西,有个输入文本框,还要个显示部分。用户输入的信息点击发送就可以把消息显示到显示区域,当然是不需要刷新的^_^。
1、先到DWR网站去下载个jar包dwr.jar,地址是:[url]http://getahead.ltd.uk/dwr/download[/url],并把该包放到自己的webproject的WEB-INF/lib目录下。
2、然后修改配置文件web.xml把加入如下信息:


 <servlet>  <display-name>DWR Servlet</display-name>  <servlet-name>dwr-invoker</servlet-name>  <servlet-class>uk.ltd.getahead.dwr.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>
这个应该和我们其他的app配置没什么两样的。
3、配置DWR专门的配置文件dwr.xml(放到和web.xml一个目录下),这个文件就是部署你可以被调用的远程的方法和类。

<dwr>  <allow>    <create creator="new" javascript="Chat">     <param name="class" value="com.motel168.chat.Chat"></param>    </create>    <convert converter="bean" match="com.motel168.chat.Message"/>  </allow></dwr>

这个文件描述的服务器端的类Chat和JavaBean,Message。

4、对应的服务器类文件:
Chat.java

package com.motel168.chat;
import java.util.LinkedList;
import java.util.List;
public class Chat {
 static LinkedList messages = new LinkedList();
 public List addMessage(String text){
  if(text != null && text.trim().length()>0){
   messages.addFirst(new Message(text));
   while(messages.size() > 10){
    messages.removeLast();
   }
  }
  return messages;
 }
 public List getMessages(){
  return messages;
 }

}
Message.java

package com.motel168.chat;
public class Message {
 long id = System.currentTimeMillis();
 String text;
 
 public Message(String newtext){
  text = newtext;
  if(text.length()>256){
   text = text.substring(0,256);
  }
  text = text.replace('<','[');
  text = text.replace('&','_');
 }
 public long getId(){
  return id;
 }
 public String getText(){
  return text;
 }
}

5、在前端页面调用:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><script type='text/javascript' src='/DWR/dwr/interface/Chat.js'></script><script type='text/javascript' src='/DWR/dwr/engine.js'></script><script type='text/javascript' src='/DWR/dwr/util.js'></script>
<head>
    <title>chat.html</title>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
 
  <body>
 <P>聊天记录:</P>
 <DIV id="chatlog"></DIV>
 <p>
 请输入信息:<INPUT id="text"/>
 <INPUT type="button" value="发言" οnclick="sendMessage()"/>
  </body>
</html>
<script language="javascript">
 function sendMessage(){
  var text = DWRUtil.getValue("text");
  DWRUtil.setValue("text","");
  Chat.addMessage(gotMessages,text);
 }
 function gotMessages(messages)
 {
     var chatlog = "";
     for (var data in messages)
     {
         chatlog = "<div>" + messages[data].text +
             "</div>" + chatlog;
     }
     DWRUtil.setValue("chatlog", chatlog);
 }
</script>
<script type='text/javascript' src='/DWR/dwr/interface/Chat.js'></script> 是动态产生的js文件,另外两个util.js,engine.js是两个javascript库文件。

后面有个DWRUtil类可以参考对应的文档。
最后应该是类似下面这个效果:

信息:

©著作权归作者所有:来自51CTO博客作者qiyadeng的原创作品,如需转载,请与作者联系,否则将追究法律责任
职场 休闲 Sample WEB

0

分享

微博 QQ 微信

收藏

上一篇:Ajax简单实例应用 下一篇:some AJAX Projec...
qiyadeng

32篇文章,5W+人气,0粉丝

Ctrl+Enter 发布

发布

取消

1条评论

按时间倒序 按时间正序

转载于:https://blog.51cto.com/442277/89623

DWR Sample相关推荐

  1. dataframe sample 采样,抽样

    20220324 https://blog.csdn.net/DSTJWJW/article/details/90667570 不重复随机抽样 20211223 # 读取数据集 test_data_a ...

  2. RxJava 过滤操作符 throttleFirst 与 throttleLast 以及 sample

    看文档发现 throttleFirst 与 throttleLast 以及 Sample 都跳到同一个界面Sample throttleFirst :在某段时间内,只发送该段时间内第1次事件(假如一个 ...

  3. Dwr 框架简单实例

    Dwr 是一个 Java 开源库,帮助你实现Ajax网站. 它可以让你在浏览器中的Javascript代码调用Web服务器上的Java,就像在Java代码就在浏览器中一样. Dwr 主要包括两部分: ...

  4. Ext结合DWR的关键代码(运行成功的DWRProxy)

    关键代码如下: Store为: var ds = new Ext.data.Store({ proxy: new Ext.data.DWRProxy({ callback: Folder.getMes ...

  5. oracle导出客户机使用us7a,导入 Oracle WORLD SAMPLE

    Import WORLD SAMPLE C:\oraclexe\app\oracle\product\11.2.0\server\bin>imp system/oracle Import: Re ...

  6. SQL2K数据库开发二之查看和修改Sample数据库

    1.在SQL Server 企业管理器中,选择"数据库"节点,右击sample 数据库图标,在弹出的菜单中选择"属性". 2."常规"页面显 ...

  7. 【AJAX】DWR入门教程

    DWR(Direct Web Remoting)是一个WEB远程调用框架.利用这个框架可以让AJAX开发变得很简单.利用DWR可以在客户端利用JavaScript直接调用服务端的Java方法并返回值给 ...

  8. atitit.php中的dwr 设计模式

    atitit.php中的dwr 设计模式 1. dwr的长处相对于ajax来说.. 1 2. DWR工作原理 1 3. php的dwr实现 1 4. 參考 3 1. dwr的长处相对于ajax来说.. ...

  9. python实现洗牌算法_洗牌算法及 random 中 shuffle 方法和 sample 方法浅析

    对于算法书买了一本又一本却没一本读完超过 10%,Leetcode 刷题从来没坚持超过 3 天的我来说,算法能力真的是渣渣.但是,今天决定写一篇跟算法有关的文章.起因是读了吴师兄的文章 <扫雷与 ...

最新文章

  1. php柱形图上显示数字怎么改回来,sigmaplot可以在柱状图上显示数值
  2. Python之schedule:schedule库的简介、安装、使用方法之详细攻略
  3. 【必看】新手妹子一键删库,老司机机智救场
  4. MixPath:基于权重共享的神经网络搜索统一方法
  5. python播放wav文件_python3 写一个WAV音频文件播放器的代码
  6. 16 分频 32 分频是啥意思_CD4017是什么?十进制计数器分频器CD4017的逻辑功能呢?...
  7. Hadoop学习资料整理
  8. 华为18级工程师三年心血终成趣谈网络协议文档(附大牛讲解)
  9. LAV Filter 源代码分析 3: LAV Video (1)
  10. lassAtitit事件代理机制原理 基于css class的事件代理的事件代理titi
  11. java小游戏 : 飞翔的小鸟 (完整版)
  12. suse12 sp4,sp5镜像资源分享
  13. 【NOI2006】 生日快乐
  14. 在Ubuntu 18.04上用源码安装GVM 20.08
  15. elementUI合并表头
  16. 联想笔记本打字不显示选字框
  17. LabVIEW控制Arduino实现RGB调色灯(基础篇—6)
  18. Possible missing firmware /lib/firmware/i915/kbl_guc_ver9_14.bin for module i915解决办法
  19. 技能入户广州需要符合什么条件
  20. 工行开放平台接口签名详解

热门文章

  1. 计算机辅导资料,计算机基础辅导资料.doc
  2. java中 object创建对象_java创建对象的几种方式
  3. Function Maps: A Flexible Representation of Maps Between Shapes
  4. Lesson5 一阶自治微分方程
  5. 使用matlab读取excel数据并保存
  6. 各种变换的原理----DX版本
  7. [MATLAB]设置坐标轴标签
  8. gpu超算算法_英伟达推GPU加速Arm服务器参考设计!微软Azure启动GPU超算实例
  9. c语言实现通讯录_C语言实现双人猜数字游戏
  10. TensorRT模型加速部署方案解析(视频/案例讲解)