Velocity空間

          快速構(gòu)建JAVA應(yīng)用
          隨筆 - 11, 文章 - 15, 評論 - 5, 引用 - 0
          數(shù)據(jù)加載中……

          CHAPTER 1 Web 開發(fā)基礎(chǔ)

           

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

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

          在這一節(jié)里,我們將向你展現(xiàn)WEB開發(fā)歷史的概覽。

          靜態(tài)WEB頁面

          一切都是從靜態(tài)頁面開始的,靜態(tài)頁面只能呈現(xiàn)一些靜態(tài)的內(nèi)容,它不能從數(shù)據(jù)庫或其他應(yīng)用里提取數(shù)據(jù)。比較接近于“所見既所得”的表現(xiàn)方式。

          靜態(tài)頁面最大的問題是不能提供動態(tài)內(nèi)容,以滿足不同用戶的需要。隨著WEB技術(shù)的發(fā)展,開始有了用于WEB開發(fā)的動態(tài)技術(shù)。

          CGI介紹

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

          在使用CGI的時候,應(yīng)用的動作一般由高級語言書寫,比如CPerlC++CGI通過網(wǎng)頁窗體的按鈕事件獲取用戶輸入,并返回最終結(jié)果給用戶。

          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應(yīng)用執(zhí)行在WEB服務(wù)器端,安全性就非常重要。許多服務(wù)器需要CGI應(yīng)用放置到文件夾/cgi-bin下。除此而外,服務(wù)器不允許執(zhí)行任何程序。

          Scripting: JSP/ASP/PHP

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

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

          Listing 1.2 腳本語言示例

          <HTML>

          <HEAD>

          <TITLE>Time Example</TITLE>

          </HEAD>

          <BODY>

          The time is <?php time() ?>

          </BODY>

          </HTML>

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

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

          未來的發(fā)展

          當我們在討論腳本語言的時候,你應(yīng)該關(guān)注以下可用到的腳本語言——如JavaScriptJava,和ActiveXListing 1.3展現(xiàn)了一個用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站點具有動態(tài)處理的能力。你不僅需要了解Java,同時也需要了解在服務(wù)器端執(zhí)行的Java代碼是如何編寫的。

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

          本章小節(jié)和下章介紹

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

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

          主站蜘蛛池模板: 钟祥市| 桃园县| 蓬安县| 陆川县| 潮州市| 焦作市| 贞丰县| 吉隆县| 河曲县| 广德县| 宁津县| 丁青县| 和林格尔县| 天台县| 淅川县| 武陟县| 正镶白旗| 抚顺市| 汉阴县| 都昌县| 和静县| 营山县| 将乐县| 新竹市| 黔江区| 尚志市| 景谷| 淅川县| 堆龙德庆县| 麻城市| 融水| 清镇市| 出国| 丹阳市| 邹城市| 盐边县| 晋城| 南通市| 高密市| 庆元县| 修水县|