posts - 122,  comments - 25,  trackbacks - 0
          1、web.xml設(shè)置
            <servlet>
              
          <servlet-name>dwr-invoker</servlet-name>
              
          <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
              
          <init-param>
                
          <param-name>activeReverseAjaxEnabled</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>

          2、client端將 setActiveReverseAjax設(shè)為true
          dwr.engine.setActiveReverseAjax(true);

          使用Reverse AJAX,client端就不用指定call back function,當(dāng)執(zhí)行server端的method時(shí),會(huì)自動(dòng)調(diào)用client端javascript來執(zhí)行。

          3、Server端通過ScriptSession,找到對(duì)到的client端JS方法
          //取得當(dāng)前執(zhí)行頁面
          WebContext wctx = WebContextFactory.get();
          String currentPage 
          = wctx.getCurrentPage();
          //取得目前執(zhí)行中的ScriptSession
          ScriptSession scriptSession = wctx.getScriptSession();
          //或是取得某page開啟中的client ScriptSession
          Collection sessions = wctx.getScriptSessionsByPage("/ajax/client.jsp");

          //根據(jù)ScriptSession來執(zhí)行client端的 DWRUtil
          Util utilThis = new Util(wctx.getScriptSession());

          //調(diào)用WRUtil,在客戶端生成相應(yīng)的腳本,實(shí)現(xiàn)消息的輸出
          utilAll.removeAllOptions("chatlog");
          utilAll.addOptions(
          "chatlog", messages, "text");

          4、網(wǎng)上的范例
          chat.jsp頁面,點(diǎn)擊發(fā)送按鈕,調(diào)用javascript的sendMessage()方法將消息發(fā)送出(注意這里沒有指定call back function。)。
          function sendMessage() {
              JavaChat.addMessage();
          }

          服務(wù)端JavaChat代碼,調(diào)用DWRUtil,在客戶端生成腳本,將消息輸出到頁面中。
          //JavaChat.java
          public void addMessage(String messsage){
              Util utilAll 
          = new Util(sessions);
              utilAll.addScriptSessions(wctx.getScriptSessionsByPage(
          "/chat.jsp"));
              utilAll.removeAllOptions("chatlog");        
              utilAll.addOptions(
          "chatlog", message, "text");
          }

          posted on 2008-01-04 12:37 josson 閱讀(1765) 評(píng)論(4)  編輯  收藏 所屬分類: web開發(fā)


          FeedBack:
          # re: DWR Reverse 一些細(xì)節(jié)
          2008-03-29 20:12 | jena
          您好,我運(yùn)行了下這個(gè)示例,但是當(dāng)在文本框輸入要發(fā)松的信息,要過一兩分鐘才能在屏幕上顯示,反應(yīng)特別遲鈍,不知怎么回事  回復(fù)  更多評(píng)論
            
          # re: DWR Reverse 一些細(xì)節(jié)[未登錄]
          2008-04-09 12:20 | josson
          @jena
          請(qǐng)注意, Tomcat 6或Jetty6才支持長(zhǎng)連接, Jetty6還提供continuation, 另外注意DWR版本.  回復(fù)  更多評(píng)論
            
          # re: DWR Reverse 一些細(xì)節(jié)
          2008-06-28 22:37 | wangguochen
          您好,客戶端發(fā)送消息之后,服務(wù)端是知道有消息要發(fā)送到所有的客戶端的?也就是在
          "3、Server端通過ScriptSession,找到對(duì)到的client端JS方法"
          中的utilAll.addOptions("chatlog", messages, "text"); 的messages是怎么得到的?  回復(fù)  更多評(píng)論
            
          # re: DWR Reverse 一些細(xì)節(jié)[未登錄]
          2008-09-02 14:39 | Kim
          我在開發(fā)中使用DWR Reverse,運(yùn)行在JDK 1.5 & Jetty 6.*
          1、在Firefox下面運(yùn)行沒有問題

          2、在IE下面運(yùn)行,使用http訪問沒有問題,但是用https就出現(xiàn)問題了:
          server方面能夠接收到頁面發(fā)送的數(shù)據(jù),但是server把數(shù)據(jù)推出去的時(shí)候,IE & https是不能夠接收到的。

          剛開始我懷疑是自己的工程有問題,于是新建立一個(gè)工程,照著教程來做.
          結(jié)果還是一樣。IE & https不能接收到任何數(shù)據(jù)。有高手能否幫忙調(diào)試下?
          謝謝了!
          問題補(bǔ)充:今天試了一下,用tomcat跑,一切正常。  回復(fù)  更多評(píng)論
            
          <2008年4月>
          303112345
          6789101112
          13141516171819
          20212223242526
          27282930123
          45678910

          常用鏈接

          留言簿(3)

          隨筆分類

          隨筆檔案

          收藏夾

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 乐昌市| 延安市| 凤山县| 阜城县| 荔浦县| 通许县| 浮梁县| 湘潭县| 黄冈市| 阿拉善右旗| 宣汉县| 砀山县| 木兰县| 丰宁| 桂林市| 普陀区| 隆昌县| 图片| 武城县| 鄯善县| 正阳县| 桑日县| 延吉市| 祁阳县| 和平区| 临桂县| 南木林县| 隆尧县| 灵璧县| 罗源县| 宁陵县| 浏阳市| 铅山县| 内乡县| 都昌县| 沁水县| 博客| 油尖旺区| 抚顺市| 水富县| 建阳市|