Velocity空間

          快速構建JAVA應用
          隨筆 - 11, 文章 - 15, 評論 - 5, 引用 - 0
          數據加載中……

          CHAPTER 1 Web 開發基礎

           

          如果你還記得大約10年前的時候,或許你已經了解WWW起初是如何工作。TelnetFTP是最早的溝通方式。雖然這些技術不能直接用于WEB,但他們的確是WWW的先驅。

          很快,新的技術不斷出現,使WEB開發變得越來越強大,本書主要探索最近幾年才出現的WEB技術的一部分:向客戶端提供動態數據顯示。我們主要關注一個名叫Velocity的新技術。

          在這一節里,我們將向你展現WEB開發歷史的概覽。

          靜態WEB頁面

          一切都是從靜態頁面開始的,靜態頁面只能呈現一些靜態的內容,它不能從數據庫或其他應用里提取數據。比較接近于“所見既所得”的表現方式。

          靜態頁面最大的問題是不能提供動態內容,以滿足不同用戶的需要。隨著WEB技術的發展,開始有了用于WEB開發的動態技術。

          CGI介紹

          CGI (Common Gateway Interface)公共網關接口對WEB開發有著重要的意義。于1993年開發出來, CGI 是第一個通過服務器后端處理后向客戶提供動態信息的WEB開發技術。

          在使用CGI的時候,應用的動作一般由高級語言書寫,比如C,PerlC++。CGI通過網頁窗體的按鈕事件獲取用戶輸入,并返回最終結果給用戶。

          Listing 1.1 CGI示例(C語言書寫)

          int main(int argc, char* argv[]) {

          printf("content-type: text/html"r"n");

          printf(""r"n");

          printf("<html><body>");

          printf("<h1>Hello World!</h1>");

          printf("</body></html>"n");

          return(0);

          }

          因為CGI應用執行在WEB服務器端,安全性就非常重要。許多服務器需要CGI應用放置到文件夾/cgi-bin下。除此而外,服務器不允許執行任何程序。

          Scripting: JSP/ASP/PHP

          正如你所了解的一樣,使用CGIPerlC++進行WEB開發對WEB設計者來說是非常困難的。也就是說WEB設計者只有完全掌握這些高級語言后才能進行WEB開發。

          和這些高級語言不同的時,腳本語言通過解釋程序執行,他們很容易學習并用于WEB程序開發。解釋程序由高級語言編寫,在HTTP服務器端加載,丟棄了CGI接口。腳本語言通過在HTML文檔中嵌入語句和腳本語言關鍵字來向客戶端遞送動態信息。

          Listing 1.2 腳本語言示例

          <HTML>

          <HEAD>

          <TITLE>Time Example</TITLE>

          </HEAD>

          <BODY>

          The time is <?php time() ?>

          </BODY>

          </HTML>

          In Listing 1.2,我們增加了一些腳本用于顯示當前時間。當用戶瀏覽該頁的時候,他們將通HTTP服務器得到當前時候。

          嵌入腳本的頁面雖然看起來像HTML頁面。然后,其后綴不能是.html.htm。只能是對應的后綴,比如:.jsp,.asp,.php等。這些擴展名非常重要,它主要是用于告訴服務器該頁面是否需要進行服務器端處理。如果需要進行處理,解釋程序將腳本代碼進行后臺運算,最后將運算結果以標準的HTML形式嵌入HTML文檔中返回給客戶。

          未來的發展

          當我們在討論腳本語言的時候,你應該關注以下可用到的腳本語言——如JavaScript,Java,和ActiveXListing 1.3展現了一個用Java腳本寫的HTML頁面。

          <%@ page language='java' import='java.sql.*' %>

          <HTML>

          <HEAD>

          <TITLE>Test</TITLE>

          </HEAD>

          <%

          ResultSet rs;

          try {

          Class.forName("com.mysql.jdbc.Driver");

          connection = DriverManager.getConnection(

          "jdbc:mysql://localhost/products");

          statement = connection.createStatement();

          %>

          <BODY>

          </BODY>

          </HTML>

          Listing 1.3 Using Java in an HTML page.

          HTML頁面中嵌入Java腳本是為了讓WEB站點具有動態處理的能力。你不僅需要了解Java,同時也需要了解在服務器端執行的Java代碼是如何編寫的。

          我們討論很多不同類型的動態頁面技術,但他們都有一個共同點,就是將顯示和商業邏輯混雜在一起。在下一節里,我們將討論混雜編程是多么的令人頭痛。

          本章小節和下章介紹

          這一章里,我們分析了WEB頁面的開發歷史。下一節,我們將討論WEB開發的方法學,并且主要關注MVC模式。

          posted on 2008-10-11 22:43 KINGWEE 閱讀(440) 評論(0)  編輯  收藏 所屬分類: Velocity

          主站蜘蛛池模板: 蛟河市| 永宁县| 丹江口市| 成武县| 曲麻莱县| 林芝县| 南昌市| 毕节市| 南皮县| 北海市| 巴彦县| 上犹县| 岳西县| 原阳县| 罗源县| 胶南市| 宿迁市| 福鼎市| 武川县| 山西省| 云龙县| 梁河县| 望奎县| 石景山区| 清新县| 信阳市| 桦川县| 攀枝花市| 崇阳县| 汾西县| 东至县| 阿瓦提县| 桃源县| 东乌| 邛崃市| 安岳县| 玛曲县| 温州市| 马鞍山市| 共和县| 泸定县|