littleQ

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

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            33 Posts :: 0 Stories :: 60 Comments :: 0 Trackbacks

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

          dwr可以讓我們在瀏覽器中使用javascript調用服務器端的java代碼。
          dwr主要包括兩部分:
          運行在客戶端的js代碼發送請求到服務器端;
          服務器端的dwr servlet處理請求,并將結果和數據返回到客戶端。
          有一張關于dwr很精確的圖:


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

          2.在/WEB-INF/目錄下,增加一個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>

          根節點是dwr,我在第一次配置這個dwr.xml的時候,忽略掉了,根結點直接就是allow,然后就一直報錯,很腦殘的錯誤。所以在這里也稍微提醒一下。
          create的creator屬性常用的為new和spring。new就是每次調用的時候,都會實例化一個新的對象來處理請求;spring就是從Spring的配置文件中取得bean。
          以JDate為例,javascript屬性是DWR動態為服務器端的Date類(java)生成一個相應的客戶端JDate類(Javascript)。JDate可以使用Date的所有public方法。

          3. 配好了dwr.xml,接下來配置/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>

          這個servlet就是用來處理dwr發送的請求。

           
          4. dwr訪問
          這時候,如果你已經在本地啟動了你的應用(假設是在tomcat中),可以訪問如下URL:

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

          你會看到在dwr.xml配置的兩個類.點擊JDate,可以看到所有可以調用的方法,并且可以點擊,在按鈕的右邊看到點擊的反饋.
          在這個頁面的上方,你還會看到如下代碼:

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

          當你的頁面需要使用JDate時,就必須把上面的script代碼片段放到你的頁面中。

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

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

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