java-DWR 的hello world

來源:互聯網
上載者:User

    總是跟在開發商後面學習,系統使用了DWR技術,只好跟著開始琢磨這個東西,不為別的,只為能看懂他們的代碼。命苦啊。

    接下來就是記錄了:

    1、準備eclipse、tomcat,略過;建立web project,略過。

    2、下載那個dwr.jar, 放到項目的WEB-INF\lib下面(j2ee的規定目錄)。

    3、修改WEB-INF\web.xml,在<web-app>中添加:

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

<servlet-mapping>
  <servlet-name>dwr-invoker</servlet-name>
  <url-pattern>/dwr/*</url-pattern>
</servlet-mapping>

    4、在WEB-INF\下建立dwr.xml設定檔,內容如下:

 1 <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://getahead.org/dwr/dwr20.dtd">
 2 <dwr>
 3   <allow>
 4     <create creator="new" javascript="JDate">
 5       <param name="class" value="java.util.Date"/>
 6     </create>
 7     <create creator="new" javascript="Hello1">
 8       <param name="class" value="com.myclass.Hello"/>
 9     </create>
10   </allow>
11 </dwr>

     5、建立Hello.java檔案:

 1 package com.myclass;
 2 
 3 public class Hello {
 4     public String Say(String msg)
 5     {
 6         return "hello," + msg;
 7     }
 8     public String Say()
 9     {
10         return "hello,world";
11     }
12 }

    6、修改jsp代碼:

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 7 <script src='/test/dwr/interface/Hello1.js'></script>
 8 <script src='/test/dwr/engine.js'></script>
 9 <script src='/test/dwr/util.js'></script>
10 <title>hello world</title>
11 </head>
12 <script>
13 function hello()
14 {
15     var msg = dwr.util.getValue("msg");
16     if(msg!="")
17         Hello1.Say(msg,say);
18     else
19         Hello1.Say(say);
20 }
21 function say(str)
22 {
23     alert(str);
24 }
25 </script>
26 <body>
27 huha,My JSP!<br>
28 <input type="text" id="msg" name="msg"/>
29 <input type="button" value="click me" onclick="javascript:hello();"/>
30 </body>
31 </html>

    需要說明的是:

    a、第8、9行是dwr提供的,util.js提供了有用的函數,如dwr.util.getValue()就是一個,擷取頁面上控制項值。

    b、第7行是dwr根據java的Hello類創造的js,在dwr.xml中定義,在17行中調用。可以很自由的把java類當成js類使用。

    c、整個的調用過程是:用戶端事件觸發執行js代碼1,該代碼使用ajax方式調用伺服器的java代碼,返回後系統會將傳回值作為參數再調用用戶端js代碼2。

    d、第17行的調用需要說明一下,Say函數(代碼1)有兩個參數,一個是java類需要的入口參數,後一個是用戶端的回呼函數,該回呼函數就是在Ajax方式下伺服器代碼執行完後需要調用用戶端執行的js代碼2。伺服器java類執行完後的傳回值會作為參數送入該回呼函數。

    以上只是dwr的hello world代碼。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.