littleQ

          終于明白曾經(jīng)他們失落的目光,當(dāng)年的你們是否一樣;間有懈怠或有頹放,難知多久方能補(bǔ)上;今起,不再彷徨!

            BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
            33 Posts :: 0 Stories :: 60 Comments :: 0 Trackbacks

          from: http://littlez.javaeye.com/blog/231133

          dwr可以讓我們?cè)跒g覽器中使用javascript調(diào)用服務(wù)器端的java代碼。
          dwr主要包括兩部分:
          運(yùn)行在客戶端的js代碼發(fā)送請(qǐng)求到服務(wù)器端;
          服務(wù)器端的dwr servlet處理請(qǐng)求,并將結(jié)果和數(shù)據(jù)返回到客戶端。
          有一張關(guān)于dwr很精確的圖:


          DWR簡(jiǎn)單配置:
          1.首先dwr.jar是必須的。下載后放在/WEB-INF/lib目錄下。

          2.在/WEB-INF/目錄下,增加一個(gè)dwr.xml文件。格式如下: 

          <dwr>  
              <allow>
            
                  <create creator="new" javascript="JDate">
            
                      <param name="class" value="java.util.Date"/>
            
                  </create>
            
                  <create creator="spring" javascript="winnerService">
            
                      <param name="beanName" value="dwrWinnerService"/>
            
                  </create>
            
              </allow>
            
          </dwr>

          根節(jié)點(diǎn)是dwr,我在第一次配置這個(gè)dwr.xml的時(shí)候,忽略掉了,根結(jié)點(diǎn)直接就是allow,然后就一直報(bào)錯(cuò),很腦殘的錯(cuò)誤。所以在這里也稍微提醒一下。
          create的creator屬性常用的為new和spring。new就是每次調(diào)用的時(shí)候,都會(huì)實(shí)例化一個(gè)新的對(duì)象來(lái)處理請(qǐng)求;spring就是從Spring的配置文件中取得bean。
          以JDate為例,javascript屬性是DWR動(dòng)態(tài)為服務(wù)器端的Date類(java)生成一個(gè)相應(yīng)的客戶端JDate類(Javascript)。JDate可以使用Date的所有public方法。

          3. 配好了dwr.xml,接下來(lái)配置/WEB-INF/web.xml。我們需要在web.xml中增加如下<servlet>和<servlet-mapping>: 

          <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>

          這個(gè)servlet就是用來(lái)處理dwr發(fā)送的請(qǐng)求。

           
          4. dwr訪問(wèn)
          這時(shí)候,如果你已經(jīng)在本地啟動(dòng)了你的應(yīng)用(假設(shè)是在tomcat中),可以訪問(wèn)如下URL:

          http://localhost:8080/[YOUR-APP-NAME]/dwr

          你會(huì)看到在dwr.xml配置的兩個(gè)類.點(diǎn)擊JDate,可以看到所有可以調(diào)用的方法,并且可以點(diǎn)擊,在按鈕的右邊看到點(diǎn)擊的反饋.
          在這個(gè)頁(yè)面的上方,你還會(huì)看到如下代碼:

          <script src='/[YOUR-APP-NAME]/dwr/interface/JDate.js'></script>  
          <script src='/[YOUR-APP-NAME]/dwr/engine.js'></script>  

          當(dāng)你的頁(yè)面需要使用JDate時(shí),就必須把上面的script代碼片段放到你的頁(yè)面中。

          <script type="text/javascript">  
              JDate.toString({   
                  callback: function(str) { alert(str); }   
             });   
          </script>

          我們就可以使用JDate了.
          這里主要是為了介紹一下dwr最基本的使用,那么dwr的一些其他能力,比如超時(shí)處理和錯(cuò)誤處理,就不在這里說(shuō)了.

          posted on 2008-08-23 23:06 littleQ 閱讀(260) 評(píng)論(0)  編輯  收藏 所屬分類: java