零全零美(www.zzgwt.com)
          生活中的很多事情,并不像If...Else那么簡單!
          posts - 96,comments - 52,trackbacks - 0
              按照文檔的說明,自己寫了一個(gè)簡單的demo(簡直就是照抄,嘿嘿),但是,就這樣也會(huì)出毛病,我真暈啊!
          第一步:引入:dwr.jar
          第二步:在dwr-2.0.3-src\web\WEB-INF\classes\org\directwebremoting目錄下找到engine.js和util.js,并引入
          第三步:在web.xml中注冊servlet如下:
           1     <servlet>
           2         <servlet-name>dwr-invoker</servlet-name>
           3         <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
           4         <init-param>
           5             <param-name>debug</param-name>
           6             <param-value>true</param-value>
           7         </init-param>
          12      </servlet>
          13         
          14         <servlet-mapping>
          15             <servlet-name>dwr-invoker</servlet-name>
          16             <url-pattern>/dwr/*</url-pattern>
          17         </servlet-mapping>
          第四步:在WEB-INFO下建立dwr.xml,內(nèi)容如下:
          <?xml version="1.0" encoding="UTF-8"?>
          <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://www.getahead.ltd.uk/dwr/dwr20.dtd">
          <dwr>
              
          <allow>
                  
          <create creator="new" javascript="helloWord">
                      
          <param name="class" value="on08_04_19.HelloWord" />
                  
          </create>
              
          </allow>
          </dwr>
          第五步:在package:on08_04_19下編寫HelloWord.java,代碼如下:
          package on08_04_19;

          public class HelloWord {

              
          public String sayHello(String name){
                  
          return "Hello "+name;
              }
          }
          按照文檔所說的方法測試,通過
          第六步:編寫JSP代碼如下:
             <script type="text/javascript" src="<%=request.getContextPath() %>/js/engine.js"></script>
              
          <script type="text/javascript" src="<%=request.getContextPath() %>/js/util.js"></script>
              
          <script type="text/javascript" src="<%=request.getContextPath() %>/dwr/interface/helloWord.js"></script>
              
          <script type="text/javascript">
                
          function firstDwr(){
                  helloWord.sayHello(
          "楊凱",callBackMethod);
                }
                
                
          function callBackMethod(data){
                  alert(data);
                }
              
          </script>
            
          </head>
            
            
          <body>
              
          <form action="">
                
          <input type="button" value="歡迎" onclick="firstDwr()">
              
          </form>
            
          </body>

          第一遍完整測試,發(fā)現(xiàn)點(diǎn)擊按鈕之后無反應(yīng),但是后臺(tái)卻打印
          A request has been denied as a potential CSRF attack
          無奈GOOGLE了半天,得到法子修改web.xml如下:
              
              
          <servlet>
                  
          <servlet-name>dwr-invoker</servlet-name>
                  
          <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
                  
          <init-param>
                      
          <param-name>debug</param-name>
                      
          <param-value>true</param-value>
                  
          </init-param>
                  
          <init-param>  
                     <!--
          加入了跨域調(diào)用功能  -->
                      
          <param-name>crossDomainSessionSecurity</param-name>   
                      
          <param-value>false</param-value>   
              
          </init-param>  
              
          </servlet>
                  
                  
          <servlet-mapping>
                      
          <servlet-name>dwr-invoker</servlet-name>
                      
          <url-pattern>/dwr/*</url-pattern>
                  
          </servlet-mapping>
          然后繼續(xù)測試,后臺(tái)打印 Exec: helloWord.sayHello(),說明后臺(tái)方法已經(jīng)被調(diào)用,,但是Firefox下依然無反應(yīng),在IE下卻出現(xiàn)JS錯(cuò)誤:
           例外被拋出且未被接住
          超暈,無奈繼續(xù)GOOGLE,有文章竟然說官方的JAR包有BUG,讓換成他的包,我暈,真是牛人,更牛的是換成他的包之后,還真是正常了,我靠!

          牛人全文:http://yahaitt.javaeye.com/blog/147795
          posted on 2008-04-19 20:06 零全零美 閱讀(431) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 桃源县| 长沙县| 慈利县| 林州市| 桦川县| 阿克| 丹棱县| 栖霞市| 贵港市| 永和县| 慈溪市| 兴山县| 定陶县| 平阴县| 高要市| 钟山县| 营山县| 大庆市| 台中县| 宁明县| 绥棱县| 万山特区| 沾化县| 历史| 简阳市| 瓦房店市| 射阳县| 云龙县| 连江县| 黔西| 丰县| 咸宁市| 黄平县| 高台县| 深水埗区| 安泽县| 新晃| 平罗县| 友谊县| 泰顺县| 蚌埠市|