服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

dwr - direct web remoting 实际使用


  ajax喊了好多年,还没实际用过,趁着dwr出来用一把。
  
  用在一个很简单的地方,就是检查是否有重复的名称。
  
  首先写好一个类
  
  public class commonservices{public boolean checkrepeatuser(string loginname){boolean result=false;...省去具体代码return result;}}
  
  在web.xml中加上
  
  <servlet><
  servlet-name>dwr-invoker<
  /servlet-name><
  display-name>dwr servlet<
  /display-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>
  
  在web-inf/dwr.xml中
  
  <?xml version="1.0" encoding="utf-8"?><
  !doctype dwr public "-//getahead limited//dtd direct web remoting 1.0//en" "http://www.getahead.ltd.uk/dwr/dwr10.dtd"><
  dwr><
  allow><
  create creator="new" javascript="commonservices"><
  param name="class" value="com.test.commonservices"/><
  /create><
  /allow><
  /dwr>
  
  这是配一个类,对应于js中哪一个类,基本上象一个bean管理器。
  
  在jsp中
  
  先引入js
  <script type='text/javascript' src='<
  %=request.getcontextpath()%>/dwr/interface/commonservices.js'><
  /script><script type='text/javascript' src='<
  %=request.getcontextpath()%>/dwr/engine.js'><
  /script><script type='text/javascript' src='<
  %=request.getcontextpath()%>/dwr/util.js'><
  /script>
  
  前两个是必须的。commonservices.js会动态生成,根据dwr.xml。
  
  写一些方法:
  
  function showresult(b){if(b){alert("已经有重复的登录名了!");
  }else{alert("登录名尚未注册过!");
  }}function checkrepeat(s){var o=getelement(s);
  if(o){commonservices.checkrepeatuser(o.value,showresult);
  }}function getelement(name){var result=null;
  var objs=document.getelementsbyname(name);
  if(objs){var o=objs[0];
  result=o;}return result;}
  
  checkrepeat:传入一个文本框的对象名,取出内容,调用后台commonservices,根据返回值显示结果。
  
  showresult:回调函数,处理后台commonservices的返回结果。不知道为什么要用这种方式,干脆直接返回值不是挺好?还需要用回调?
  
  getelement:自定义的实用工具函数
  
  定义一下按钮:
  <input type="button" onclick="checkrepeat('user.loginname')" value="检查是否重复">
  
  这样点一个按钮之后就会弹出对话框,显示是否重复的信息。
  
  调用的大致流程是这样的:
  
  button->checkrepeat->commonservices.js->engine.js->dwr servlet->commonservices.java->db

扫描关注微信公众号