码迷,mamicode.com
首页 > 其他好文 > 详细

DWR 在项目中的应用

时间:2016-03-26 18:53:51      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:

  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.onload=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" onchange="loadshi(this.value)">
                  </select>
                  <select id="city" onchange="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;
                  
              }



DWR 在项目中的应用

标签:

原文地址:http://www.cnblogs.com/chizizhixin/p/5323638.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!