【正文】
isplay until you read the data that the user submits. Just remember that the user submits two kinds of data: explicit (., HTML form data) and implicit (., HTTP request headers). Either kind of input can be used to build the output page. In particular, it is quite mon to build a userspecific page based on a cookie value. 2. The Web page is derived from data that changes frequently. 8 If the page changes for every request, then you certainly need to build the response at request time. If it changes only periodically, however, you could do it two ways: you could periodically build a new Web page on the server (independently of client requests), or you could wait and only build the page when the user requests it. The right approach depends on the situation, but sometimes it is more convenient to do the latter: wait for the user request. For example, a weather report or news headlines site might build the pages dynamically, perhaps returning a previously built page if that page is still up to date. 3. The Web page uses information from corporate databases or other serverside sources. If the information is in a database, you need serverside processing even if the client is using dynamic Web content such as an applet. Imagine using an applet by itself for a search engine site: Downloading 50 terabyte applet, please wait! Obviously, that is silly。 An Overview of Servlet and JSP Technology Abstract: Servlet program running in the serverside, dynamically generated Web page with the traditional CGI and many other similar pared to CGI technology, Java Servlet with a more efficient, easier to use, more powerful and has better portability, more savings to invest . Key words: JSP Technology, Servlet, HTTP server A Servlet39。它們用在航空業(yè)、電子商務(wù)、在線銀行、 web 搜索引擎、門戶、大型金融網(wǎng)站、以及成百上千您日常光顧的其他網(wǎng)站。即使 servelt 執(zhí)行系統(tǒng)調(diào)用激活本地操作系統(tǒng)上的程序,它也不會(huì)用到外殼來完成這項(xiàng)任務(wù)。 問題的第二個(gè)來源是,一些 CGI 程序用不自動(dòng)檢查數(shù)組和字符串邊界的語言編寫而成。他們還是不需要做出任何更改。如果項(xiàng)目變得極為龐大,錯(cuò)綜復(fù)雜,他們或許希望使用 Enterprise JavaBeans 來封裝他們的商業(yè)邏輯。他們的 servelt 和 jsp 不需要重寫編寫。其次,這兩個(gè)國家的貨幣 5 對(duì)美元的匯率都極為不利。印度接近列表的頂端,可能 僅次于美國。因此,通過使用 servelt 和 jsp,我們可以從免費(fèi)或廉價(jià)的服務(wù)器開始,在項(xiàng)目獲得初步成功后,在移植到更高性能或高級(jí)管理工具的昂貴的服務(wù)器上。 iPla Enterprise Server。所有主要的 Web 服務(wù)器。例如,與 Web 服務(wù)器的通信使得講相對(duì) URL 轉(zhuǎn)換成具體的路徑名變得更為容易。 便利 Servelt 提供大量的基礎(chǔ)構(gòu)造,可以自動(dòng)分析和解碼 HTML 的表單數(shù)據(jù),讀取和設(shè)置 4 HTTP 報(bào)頭,處理 cookie,跟蹤會(huì)話,以及其他次類高級(jí)功能。這種方式減少了服務(wù)器的內(nèi)存需求,通過實(shí)例化更少的對(duì)象從而節(jié)省了時(shí)間。如果 CGI 程序自身相對(duì)比較簡短,那么啟動(dòng)進(jìn)程的開銷會(huì)占用大部分執(zhí)行時(shí)間。例如, servlet 能夠嵌入到 FTP 或郵件 服務(wù)器中,擴(kuò)展他們的功能。顯然,這樣很愚蠢;這種情況下,我們需要與數(shù)據(jù)庫進(jìn)行會(huì)話。例如,天氣預(yù)報(bào)或新聞網(wǎng)站可能會(huì)動(dòng)態(tài)地構(gòu)建頁面,也有可能會(huì)返回之前構(gòu)建的頁面(如果它還是最新的話)。 頁面由頻繁改變的數(shù)據(jù)導(dǎo)出。在沒有讀取到用戶提交的數(shù)據(jù)之前,我們不知道應(yīng)該顯示什么。 動(dòng)態(tài)構(gòu)建網(wǎng)頁的原因 預(yù)先建立的文檔可以滿足客戶的許多請(qǐng)求,服務(wù)器無需調(diào)用 servlet 就可以處理這些請(qǐng)求。 圖 Web 中間層到客戶端的單箭頭。 ( 4) 向客戶發(fā)送顯式數(shù)據(jù)(即文檔)。該數(shù)據(jù)庫可能不理解 HTTP,或者不能返回 HTML 形式的結(jié)果, 所有 Web 瀏覽器不能直接與數(shù)據(jù)庫進(jìn)行會(huì)話。 HTTP 信息包括 cookie、瀏覽器所能識(shí)別的媒體類型和壓縮模式等。然而,數(shù)據(jù)還有可能來自 applet或定 制的 HTTP 客戶程序。 關(guān)鍵字 : JSP 技術(shù), Servlet, HTTP 服務(wù) 的功能 Servlets 是運(yùn)行在 Web 或應(yīng)用服務(wù)器上的 Java 程序,它是一個(gè)中間層,負(fù)責(zé)連接來自 Web 瀏覽器或其他 HTTP 客戶程序的請(qǐng)求和 HTTP 服務(wù)器上的數(shù)據(jù)庫或應(yīng)用程序。Servlet 的工作是執(zhí)行西門的任務(wù),如圖 所示 。 ( 2) 讀取由瀏覽器發(fā)送的隱式請(qǐng)求數(shù)據(jù)。 ( 3) 生成結(jié)果。即使它能夠做到這一點(diǎn),為了安全上的考慮,我們也不希望讓它這么做。 這個(gè)文檔可以用各種格式發(fā)送,包括文本( HTML 或 XML),二進(jìn)制( GIF圖),甚至可以式建立在其他底層格式之上的壓縮格式,如 gzip。但是,實(shí)際發(fā)送的數(shù)據(jù)有兩種:文檔本身,以及后臺(tái)的 HTTP 信息。然而,許多情況下靜態(tài)的結(jié)果不能滿足要求,我們需要針對(duì)每個(gè)請(qǐng)求生成一個(gè)頁面 。要記住,用戶提交兩種類型的數(shù)據(jù):顯示(即 HTML 表單的數(shù)據(jù))和隱式(即 HTTP 請(qǐng)求的報(bào)頭)。 如果頁面需要根據(jù)每個(gè)具體的請(qǐng)求做出相應(yīng)的改變,當(dāng)然需要在請(qǐng)求發(fā)生時(shí)構(gòu)建響應(yīng)。 3 頁面中使用了來自公司數(shù)據(jù)庫或其他數(shù)據(jù)庫斷數(shù)據(jù)源的信息。從客戶端到 Web 層再到數(shù)據(jù)庫(三層結(jié)構(gòu)),要比從 applet 直接到數(shù)據(jù)庫(二層結(jié)構(gòu))更靈活,也更安全,而性能上的損失很少甚至沒有。而且,用于會(huì)話啟動(dòng)協(xié)議服務(wù)器的 servlet API 最近已經(jīng)被標(biāo)準(zhǔn)化(參見 servelt 的這種用法尚不流行,在此,我們只論述 HTTP Servlet。而使用 servelt, Java 虛擬機(jī)會(huì)一直運(yùn)行,并用輕量級(jí)的 Java 線程處理每個(gè)請(qǐng)求,而非重量級(jí)的操作系統(tǒng)進(jìn)程。最后,當(dāng) CGI 程序結(jié)束對(duì)請(qǐng)求的處理之后,程序結(jié)束。而在 CGI 中,大部分工作都需要我們資金完成。多個(gè) servelt 還可以共享數(shù)據(jù),從而易于實(shí)現(xiàn)數(shù)據(jù)庫連接共享和類似的資源共享優(yōu)化。實(shí)際上都直接或通過插件支持 servlet。 Oracle9i AS 或者 StrNine WebStar 上運(yùn)行。這與其他 CGI方案形成鮮明的對(duì)比,這些 CGI 方案在初期都需要為購買專利軟件包投入大量的資金。 Marty 曾在馬尼拉講授過 jsp 和 servlet 培訓(xùn)課程,那兒對(duì) servelt 和 jsp 技術(shù)抱很大的興趣。因此,從美國公司那里購買專用 Web 服務(wù)器會(huì)消耗