Java Servlet和JSP教程(1)(轉)

post0發表於2007-08-11
Java Servlet和JSP教程(1)(轉)[@more@]

1 概述

1.1 Java Servlet及其特點

Servlet是Java技術對CGI 程式設計的回答。Servlet程式在伺服器端執行,動態地生成Web頁面。與傳統的CGI和許多其他類似CGI的技術相比,Java Servlet具有更高的效率,更容易使用,功能更強大,具有更好的可移植性,更節省投資(更重要的是, Servlet程式設計師收入要比Perl程式設計師高:-):

高效

在傳統的CGI中,每個請求都要啟動一個新的程式,如果CGI程式本身的執行時間較短,啟動程式所需要的開銷很可能反而超過實際執行時間。而在Servlet中,每個請求由一個輕量級的Java執行緒處理(而不是重量級的作業系統程式)。

在傳統CGI中,如果有N個併發的對同一CGI程式的請求,則該CGI程式的程式碼在記憶體中重複裝載了N次;而對於Servlet,處理請求的是N個執行緒,只需要一份Servlet類程式碼。在效能最佳化方面,Servlet也比CGI有著更多的選擇,比如緩衝以前的計算結果,保持資料庫連線的活動,等等。

方便

Servlet提供了大量的實用工具例程,例如自動地解析和解碼HTML表單資料、讀取和設定HTTP頭、處理Cookie、跟蹤會話狀態等。

功能強大

在Servlet中,許多使用傳統CGI程式很難完成的任務都可以輕鬆地完成。例如,Servlet能夠直接和Web伺服器互動,而普通的CGI程式不能。Servlet還能夠在各個程式之間共享資料,使得資料庫連線池之類的功能很容易實現。

可移植性好

Servlet 用Java編寫,Servlet API具有完善的標準。因此,為I-Planet Enterprise Server寫的Servlet無需任何實質上的改動即可移植到Apache、Microsoft IIS或者WebStar?負跛?械鬧髁鞣?衿鞫賈苯踴蟯ü?寮?С?ervlet。

節省投資

不僅有許多廉價甚至免費的Web伺服器可供個人或小規模網站使用,而且對於現有的伺服器,如果它不支援Servlet的話,要加上這部分功能也往往是免費的(或只需要極少的投資)。

1.2 JSP及其特點

JavaServer Pages(JSP)是一種實現普通靜態HTML和動態HTML混合編碼的技術,有關JSP基礎概念的說明請參見《JSP技術簡介 》。

許多由CGI程式生成的頁面大部分仍舊是靜態HTML,動態內容只在頁面中有限的幾個部分出現。但是包括Servlet在內的大多數CGI技術及其變種,總是透過程式生成整個頁面。JSP使得我們可以分別建立這兩個部分。例如,下面就是一個簡單的JSP頁面:

歡迎訪問網上商店

歡迎

歡迎,

<!-- 首次訪問的使用者名稱字為"New User" --&gt

要設定帳號資訊,請點選

這裡

頁面的其餘內容...

下面是JSP和其他類似或相關技術的一個簡單比較:

JSP和Active Server Pages(ASP)相比

Microsoft 的ASP是一種和JSP類似的技術。JSP和ASP相比具有兩方面的優點。首先,動態部分用Java編寫,而不是VB Script或其他 Microsoft語言,不僅功能更強大而且更易於使用。第二,JSP應用可以移植到其他作業系統和非Microsoft的Web伺服器上。

JSP和純Servlet相比

JSP 並沒有增加任何本質上不能用Servlet實現的功能。但是,在JSP中編寫靜態HTML更加方便,不必再用 println語句來輸出每一行HTML程式碼。更重要的是,藉助內容和外觀的分離,頁面製作中不同性質的任務可以方便地分開:比如,由頁面設計專家進行HTML設計,同時留出供Servlet程式設計師插入動態內容的空間。

JSP和伺服器端包含(Server-Side Include,SSI)相比

SSI是一種受到廣泛支援的在靜態HTML中引入外部程式碼的技術。JSP在這方面的支援更為完善,因為它可以用Servlet而不是獨立的程式來生成動態內容。另外,SSI實際上只用於簡單的包含,而不是面向那些能夠處理表單資料、訪問資料庫的“真正的”程式。

JSP和JavaScript相比

JavaScript 能夠在客戶端動態地生成HTML。雖然JavaScript很有用,但它只能處理以客戶端環境為基礎的動態資訊。除了Cookie之外,HTTP狀態和表單提交資料對JavaScript來說都是不可用的。另外,由於是在客戶端執行,JavaScript不能訪問伺服器端資源,比如資料庫、目錄資訊等等。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8225414/viewspace-946027/,如需轉載,請註明出處,否則將追究法律責任。

相關文章