資源描述:
《基于jsp的在線書店銷售系統(tǒng)的設(shè)計及實現(xiàn)外文文獻(xiàn)和翻譯》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、畢業(yè)設(shè)計(論文)外文文獻(xiàn)翻譯專業(yè)學(xué)生姓名班級學(xué)號指導(dǎo)教師13外文資料名稱:AnOverviewofServletandJSPTechnology外文資料出處:Internet附件:1.外文資料翻譯譯文2.外文原文指導(dǎo)教師評語:簽名:年月日Servlet和JSP技術(shù)簡述13NagleandWiegleyXX譯摘要:Servlet程序在服務(wù)器端運行,動態(tài)地生成Web頁面與傳統(tǒng)的CGI和許多其他類似CGI的技術(shù)相比,JavaServlet具有更高的效率,更容易使用,功能更強(qiáng)大,具有更好的可移植性,更節(jié)省投資。關(guān)鍵字:JSP技術(shù),Servlet,HTTP服務(wù)1.1Ser
2、vlet的功能Servlets是運行在Web或應(yīng)用服務(wù)器上的Java程序,它是一個中間層,負(fù)責(zé)連接來自Web瀏覽器或其他HTTP客戶程序的請求和HTTP服務(wù)器上的數(shù)據(jù)庫或應(yīng)用程序。Servlet的工作是執(zhí)行西門的任務(wù),如圖1.1所示。圖1.1Web中間件的作用(1)讀取客戶發(fā)送的顯式數(shù)據(jù)。最終用戶一般在頁面的HTML表單中輸入這些數(shù)據(jù)。然而,數(shù)據(jù)還有可能來自applet或定制的HTTP客戶程序。(2)讀取由瀏覽器發(fā)送的隱式請求數(shù)據(jù)。圖1.1中顯示了一條從客戶端到Web服務(wù)器的單箭頭,但實際上從客戶端傳送到Web服務(wù)器的數(shù)據(jù)有兩種,它們分別為用戶在表單中輸入的顯式
3、數(shù)據(jù),以及后臺的HTTP信息。兩種數(shù)據(jù)都很重要。HTTP信息包括cookie、瀏覽器所能識別的媒體類型和壓縮模式等。(3)生成結(jié)果。13這個過程可能需要訪問數(shù)據(jù)庫、執(zhí)行RMI或EJB調(diào)用、調(diào)用Web服務(wù),或者直接計算得出對應(yīng)的響應(yīng)。實際的數(shù)據(jù)可能存儲在關(guān)系型數(shù)據(jù)庫中。該數(shù)據(jù)庫可能不理解HTTP,或者不能返回HTML形式的結(jié)果,所有Web瀏覽器不能直接與數(shù)據(jù)庫進(jìn)行會話。即使它能夠做到這一點,為了安全上的考慮,我們也不希望讓它這么做。對應(yīng)大多數(shù)其他應(yīng)用程序,也存在類似的問題。因此,我們需要Web中間層從HTTP流中提取輸入數(shù)據(jù),與應(yīng)用程序會話,并將結(jié)果嵌入到文檔中。
4、(1)向客戶發(fā)送顯式數(shù)據(jù)(即文檔)。這個文檔可以用各種格式發(fā)送,包括文本(HTML或XML),二進(jìn)制(GIF圖),甚至可以式建立在其他底層格式之上的壓縮格式,如gzip。但是,到目前為止,HTML式最常用的格式,故而servelt和JSP的重要任務(wù)之一就式將結(jié)果包裝到HTML中。(2)發(fā)送隱式的HTTP響應(yīng)數(shù)據(jù)。圖1.1中顯示了一條從Web中間層到客戶端的單箭頭。但是,實際發(fā)送的數(shù)據(jù)有兩種:文檔本身,以及后臺的HTTP信息。同樣,兩種數(shù)據(jù)對開發(fā)來說都式至關(guān)重要的。HTTP響應(yīng)數(shù)據(jù)的發(fā)送過程涉及告知瀏覽器或其他客戶程序所返回文檔的類型(如HTML),設(shè)置cooki
5、e和緩存參數(shù),以及其他類似的任務(wù)。1.2動態(tài)構(gòu)建網(wǎng)頁的原因預(yù)先建立的文檔可以滿足客戶的許多請求,服務(wù)器無需調(diào)用servlet就可以處理這些請求。然而,許多情況下靜態(tài)的結(jié)果不能滿足要求,我們需要針對每個請求生成一個頁面。實時構(gòu)建頁面的理由有很多種:1、網(wǎng)頁基于客戶發(fā)送的數(shù)據(jù)。例如,搜索引擎生成的頁面,以及在線商店的訂單確認(rèn)頁面,都要針對特定的用戶請求而產(chǎn)生。在沒有讀取到用戶提交的數(shù)據(jù)之前,我們不知道應(yīng)該顯示什么。要記住,用戶提交兩種類型的數(shù)據(jù):顯示(即HTML表單的數(shù)據(jù))和隱式(即HTTP請求的報頭)。兩種輸入都可用來構(gòu)建輸出頁面?;赾ookie值針對具體用戶構(gòu)
6、建頁面的情況尤其普遍。2、頁面由頻繁改變的數(shù)據(jù)導(dǎo)出。如果頁面需要根據(jù)每個具體的請求做出相應(yīng)的改變,當(dāng)然需要在請求發(fā)生時構(gòu)建響應(yīng)。但是,如果頁面周期性地改變,我們可以用兩種方式來處理它:周期性地在服務(wù)器上構(gòu)建新的頁面(和客戶請求無關(guān)),或者僅僅在用戶請求該頁面時再構(gòu)建。具體應(yīng)該采用哪種方式要根據(jù)具體情況而定,但后一種方式常常更為方便,因為它只需簡單地等待用戶的請求。例如,天氣預(yù)報或新聞網(wǎng)站可能會動態(tài)地構(gòu)建頁面,也有可能會返回之前構(gòu)建的頁面(如果它還是最新的話)。3、頁面中使用了來自公司數(shù)據(jù)庫或其他數(shù)據(jù)庫斷數(shù)據(jù)源的信息。13如果數(shù)據(jù)存儲在數(shù)據(jù)庫中,那么,即使客戶端使
7、用動態(tài)Web內(nèi)容,比如applet,我們依舊需要執(zhí)行服務(wù)器端處理。想象以下,如果一個搜索引擎網(wǎng)站完全使用applet,那么用戶將會看到:“正在下載50TB的applet,請等待!”。顯然,這樣很愚蠢;這種情況下,我們需要與數(shù)據(jù)庫進(jìn)行會話。從客戶端到Web層再到數(shù)據(jù)庫(三層結(jié)構(gòu)),要比從applet直接到數(shù)據(jù)庫(二層結(jié)構(gòu))更靈活,也更安全,而性能上的損失很少甚至沒有。畢竟數(shù)據(jù)庫調(diào)用通常是對速度影響最大的步驟,因而,經(jīng)過中間層可以執(zhí)行高速緩存和連接共享。理論上講,servelt并非只用于處理HTTP請求的Web服務(wù)器或應(yīng)用服務(wù)器,它同樣可以用于其他類型的服務(wù)器。例如
8、,servlet能夠嵌入