簡化Ajax和Java開發,第1部分:用JSP標記檔案動態產生JavaScript代碼

來源:互聯網
上載者:User

很多Web開發人員都經常抱怨說 Java™ EE 太複雜、構建新的 Web 元件太難、定製現有的組件沒有預想的那樣簡單,並且即便是很小的更改都需要重新啟動應用程式。本系列給出了針對這些問題的解決方案,即採用代碼產生器、約定、指令碼語言和先進的 JavaServer Pages ™ (JSP) 特性。在本文中,您將瞭解如何基於 JSP 標記檔案構建可重用的 Ajax 和 Java 組件,而這些 JSP 標記檔案很容易開發和部署。更改之後,JSP 標記檔案會由 Java EE 伺服器自動重編譯,而無須重啟應用程式。此外,您還能完全控制所產生的程式碼,並能輕鬆地定製這些輕量級組件,因為它們使用的是 JSP 文法。

本系列含 4 部分,展示了一種基於 JSP 的技術,用以產生 JavaScript 代碼、顯著減少需要手動編寫的代碼量,本文是第 1 部分。本文的應用程式範例展示了如何產生 JavaScript 函數來發送 Ajax 請求和處理 Ajax 響應。如果想要輕鬆地更改 Ajax 代碼,可以將這裡討論的簡單技巧應用到實際的應用程式中。本文更寬泛的目標是展示如何使用 JSP 標記檔案針對具體需求產生 JavaScript 代碼,而非只是 Ajax 常式。

使用架構和代碼產生器

如果您很幸運地找到了一種能滿足您需要的組件或架構,那麼就請使用它吧。如果沒有找到也沒關係,因為您總是可以開發自己的解決方案,也可以定製現有的一段代碼。不管是哪種情況,一種很好的做法是 “參數化” 代碼並將其放入一個可重用的庫,而非將參數寫入程式碼到您的代碼裡。不過有時候,實現泛型並不實際,因為它會使開發變得複雜,而非簡化。在將泛型代碼放入可重用組件或架構時,可以考慮使用代碼產生器來更有效地產生特定的代碼。

在開發的過程中避免複製 & 粘貼

假設,您需要應用程式使用 Ajax 請求網站上的某些資訊,最快的(當然不是最好的)方法是找到一些如清單 1 這樣的免費代碼、更改 URL 並將這些代碼粘貼到 Web 頁面。很多開發人員都會這麼做,但這種做法會導致巨大的維護問題。如果應用程式具有數百個頁面,最後的結果將是出現大量像清單 1 中的 getInfo() 這樣的函數。不好的一面是每次需要進行添加或更改(比如實現 Ajax 請求的錯誤處理)時,您都必須要手動修改所有頁面並重新測試它們。好的一面是您可以通過使用庫、架構和代碼產生器,很容易地避免這個維護問題。

清單 1. Ajax 函數

function getInfo(country, city) {
   var request = null;
   if (window.ActiveXObject)
     request = new ActiveXObject("Microsoft.XMLHTTP");
   else if (window.XMLHttpRequest)
     request = new XMLHttpRequest();
   else
     return;
   var url = "CityInfo.jsp?country=" + escape(country)
              + "&city=" + escape(city);
   request.open("GET", url, true);
   function processResponse() {
     if (request.readyState == 4) {
       if (request.status == 200) {
         // ...
       }
     }
   }
   request.onreadystatechange = processResponse;
   request.send(null);
}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.