DWR 在项目中的应用

DWR 在项目中的应用

  1. DWR框架简介   
  2. DWR框架是一个可以允许你去创建 AJAX WEB站点的JAVA开源库。它可以让你在浏览器的JavaScript代码中调用Web服务器的Java代码,就像Java代码在浏览器中一 样。DWR工作原理是通过动态把Java类生成JavaScript,让使用者感觉调用就像发生在浏览器端。 
    1. 2、DWR的使用场合   
    2. 当我们的业务需要在页面不提交的情况下访问服务器端并实现页面数据局部刷新时,我们就可以使用DWR。
      1. 1、导入dwr的jar包   
      2. 2、编写一个dwr框架在页面中用JavaScript要调用到的java类。 
      3. web.xml中的配置
      4.  <servlet>
            <servlet-name>dwr-invoker</servlet-name>
            <display-name>DWR Servlet</display-name>
            <description>Direct Web Remoter Servlet</description>
            <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>

            <!-- This should NEVER be present in live -->
            <init-param>
              <param-name>debug</param-name>
              <param-value>true</param-value>
            </init-param>

            <!-- Remove this unless you want to use active reverse ajax -->
            <init-param>
              <param-name>activeReverseAjaxEnabled</param-name>
              <param-value>true</param-value>
            </init-param>

            <!-- By default DWR creates application scope objects when they are first
            used. This creates them when the app-server is started -->
            <init-param>
              <param-name>initApplicationScopeCreatorsAtStartup</param-name>
              <param-value>true</param-value>
            </init-param>

            <!-- This enables full streaming mode. It's probably better to leave this
            out if you are running across the internet -->
            <init-param>
              <param-name>maxWaitAfterWrite</param-name>
              <param-value>-1</param-value>
            </init-param>

            <!--
            For more information on these parameters, see:
            - http://getahead.org/dwr/server/servlet
            - http://getahead.org/dwr/reverse-ajax/configuration
            -->

            <load-on-startup>1</load-on-startup>
          </servlet>

          <servlet-mapping>
            <servlet-name>dwr-invoker</servlet-name>
            <url-pattern>/dwr/*</url-pattern>
          </servlet-mapping>
      5. Dwr.xml
      6. <dwr>

          <allow>

            <!--
            <filter class="org.getahead.dwrdemo.monitor.MonitoringAjaxFilter"/>
            <filter class="org.directwebremoting.filter.ExtraLatencyAjaxFilter">
              <param name="delay" value="200"/>
            </filter>
            -->

            <!-- intro - for the test on index.html -->
            <create creator="new" javascript="Intro">
              <param name="class" value="org.getahead.dwrdemo.intro.Intro"/>
            </create>

            
            <convert match="com.dianzhi.bean.City" converter="bean">
            <param name="include" value="cityId,cityName" />
            </convert>
            
            <!-- simpletext -->
            <create creator="new" javascript="DWRService">
              <param name="class" value="com.dianzhi.DWRService"/>
            </create>

          </allow>

        </dwr>
        1. 5、编写jsp页面,用javascript调用后台的java代码  
        2.     <script type='text/javascript'
                      src='/dwr_mycity/dwr/interface/DWRService.js'>
          </script>
                  <script type='text/javascript' src='/dwr_mycity/dwr/engine.js'>
          </script>

                  <script type='text/javascript' src='/dwr_mycity/dwr/util.js'>
          </script>
                  <script type="text/javascript" src="jquery/jquery-1.3.2.js">
          </script>
                  <script type="text/javascript">
          window.οnlοad=function(){
                  DWRService.getPropive(function(data){
                      for(var p in data){
                          //alert(p);
                      //    alert(data[p]);
                          var option = document.createElement("option");
                          option.innerHTML=data[p];
                          option.value=p;
                          document.getElementById("provice").appendChild(option);
                      }
                  });
              }
          function loadshi(id){
              //alert("aaaa");
              DWRService.getCity(id,function(data){
                  document.getElementById("city").innerHTML="" ;
                  document.getElementById("qu").innerHTML="" ;
                  for(var c in data){
                      var option =document.createElement("option");
                      option.innerHTML=data[c];
                      option.value=c;
                      document.getElementById("city").appendChild(option);
                  }
                  
              });
          }
          function loadqu(id){
              //alert("aaaa");
              DWRService.getQu(id,function(data){
                  document.getElementById("qu").innerHTML="" ;
                  for(var q in data){
                      var option =document.createElement("option");
                      option.innerHTML=data[q];
                      option.value=q;
                      document.getElementById("qu").appendChild(option);
                  }
                  
              });
          }
          </script>
              </head>

              <body>
                  <select id="provice" οnchange="loadshi(this.value)">
                  </select>
                  <select id="city" οnchange="loadqu(this.value)">
                  </select>
                  <select id="qu">
                  </select>
              </body>
          </html>
        3. public class DWRService {
              /*public List<City> getPropive (){
                  ICityDao dao = new CityDao();
                  List<City> list =dao.findByParentId(0);
                  for (City city : list) {
                      System.out.println(city.getCityId()+"..."+city.getCityName());
                      
                  }
                  System.out.println(list.size());
                  return list;
                  
              }*/
              public Map<Integer,String> getPropive (){
                  ICityDao dao = new CityDao();
                  List<City> list =dao.findByParentId(0);
                  Map<Integer,String> map = new HashMap<Integer,String>();
                  for (City city : list) {
                      //System.out.println(city.getCityId()+"..."+city.getCityName());
                      map.put(city.getCityId(), city.getCityName());
                  }
                  return map;
                  
              }
              public Map<Integer,String> getCity(int id){
                  
                  ICityDao dao = new CityDao();
                  List<City> list =dao.findByParentId(id);
                  Map<Integer,String> map = new HashMap<Integer,String>();
                  for (City city : list) {
                      //System.out.println(city.getCityId()+"..."+city.getCityName());
                      map.put(city.getCityId(), city.getCityName());
                  }
                  return map;
                  
              }
              public Map<Integer,String> getQu(int id){
                  
                  ICityDao dao = new CityDao();
                  List<City> list =dao.findByParentId(id);
                  Map<Integer,String> map = new HashMap<Integer,String>();
                  for (City city : list) {
                      //System.out.println(city.getCityId()+"..."+city.getCityName());
                      map.put(city.getCityId(), city.getCityName());
                  }
                  return map;
                  
              }



posted @ 2016-03-26 18:09 赤子之心_timefast 阅读( ...) 评论( ...) 编辑 收藏
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值