CHAPTER 1 Web 開發(fā)基礎(chǔ)
如果你還記得大約10年前的時候,或許你已經(jīng)了解WWW起初是如何工作。Telnet和FTP是最早的溝通方式。雖然這些技術(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)用的動作一般由高級語言書寫,比如C,Perl或C++。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
正如你所了解的一樣,使用CGI和Perl或C++進行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)注以下可用到的腳本語言——如JavaScript,Java,和ActiveX。Listing 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