dwr笔记

一、基础概念
    1、dwr介绍:DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,可以帮助开发人员开发包含AJAX技术的
       网站。它可以允许在浏览器里的代码使用运行在WEB服务器上的JAVA函数,就像它就在浏览器里一样。
    2、当我们想看DWR自动生成的测试页(Using debug/test mode)时,可在servlet配置中加上 
       <param-name>debug</param-name>
       <param-value>true</param-value>
       这个参数DWR默认是false。如果选择true,我们可以通过 http://localhost:port/app/dwr看到你部署的每个DWR class。并且可以测试java代码的每
       个方法是否运行正常。为了安全考虑,在正式环境下你一定把这个参数设为false。 
    3、多个dwr.xml配置文件在web.xml中的配置
       <servlet> 
        <servlet-name>dwr-invoker</servlet-name> 
<servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class> 
<init-param> 
<param-name>config-1</param-name> 
<param-value>WEB-INF/dwr1.xml</param-value> 
</init-param> 
<init-param> 
<param-name>config-2</param-name> 
<param-value>WEB-INF/dwr2.xml</param-value> 
</init-param> 
</servlet> 


在这种配置下,param-name的值必须以config开头。param-name可以有>=0个。如果没有param-name,那么将会读取 WEB-INF/dwr.xml。如果有大于零
      个param-name,那么WEB-INF/dwr.xml文件将不会被读取。 


二、dwr步骤
1、添加dwr.jar
2、在WEB-INFO下添加dwr.xml
<?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>
<create javascript="areaService" creator="spring">
<param name="beanName" value="areaService" />
</create>
<convert match="cn.dwr.domain.Province" converter="bean">
   <param name="include" value="provinceId,provinceName" />
</convert>
<convert match="cn.dwr.domain.City" converter="bean">
   <param name="include" value="cityId,province,cityName" />
</convert>
<!-- 打印出错误详情 -->
     <convert converter="bean" match="java.lang.StackTraceElement" />
                  <convert converter="exception" match="java.lang.Exception" />
</allow>
</dwr>
3、在web.xml中配置dwr
<servlet>
<servlet-name>dwr</servlet-name>
<servlet-class>
org.directwebremoting.servlet.DwrServlet
</servlet-class>
<init-param>
<!-- 以debuge模式启动 -->
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
<!-- 跨域调用配置 -->
<init-param>
                 <param-name>crossDomainSessionSecurity</param-name>
                 <param-value>false</param-value>
            </init-param>
            <init-param>
                <param-name>allowScriptTagRemoting</param-name>
                <param-value>true</param-value>
            </init-param>
</servlet>
<servlet-mapping>
<servlet-name>dwr</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
4、使用dwr
1)在dwr.xml中配置
  <create javascript="areaService" creator="spring">
<param name="beanName" value="areaService" />
  </create>
  <convert match="cn.dwr.domain.Province" converter="bean">
      <param name="include" value="provinceId,provinceName" />
  </convert>
  <convert match="cn.dwr.domain.City" converter="bean">
<param name="include" value="cityId,province,cityName" />
  </convert>
  <!-- 打印出错误详情 -->
  <convert converter="bean" match="java.lang.StackTraceElement" />
         <convert converter="exception" match="java.lang.Exception" />
2)引入dwr的js
         <!-- 1、engine.js负责客户端、服务端沟通 -->
                  <script type = "text/javascript" src = "dwr/engine.js"></script>
         <!-- 2、util.js是一些好用的JavaScript程式,可以让你少写很多JavaScript -->
                  <script type = "text/javascript" src = "dwr/util.js"></script>
         <!-- 3、areaService.js是由DwrServlet根据dwr.xml中的设定生成的 -->
                  <script type = "text/javascript" src = "dwr/interface/areaService.js"></script>
3)调用servic中的相关方法
  (1)通过对应的service js 调用相关方法,并写回调函数
 /*============================= 查询省份 =============================*/
                        window.onload = function(){
                        areaService.searchProvince(callBackPrivince);
                        };
         (2)初始化机构类别的回调函数
              // 省份select
              function callBackPrivince(resultObj){
                    var province = document.getElementById("province");
                    province.options.add(new Option("==请选择省份=="));
                    if(resultObj != null){
                        province.options.length = 0;
                      for(var i = 0; i < resultObj.length; i++){
                          province.options.add(new Option(resultObj[i].provinceName, resultObj[i].provinceId));
                      }
                      changeCity(resultObj[0].provinceId);
                  }
                 }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值