【正文】
IBM WebSphere, iPla Enterprise Server, Oracle9i AS, or StarNine WebStar. They are part of the Java 2 Platform, Enterprise Edition (J2EE。 It can protect data platform efficiently with management visit limits of authority, server database is also safe. Now in my courtyard, ( Intra ) , outer ( Inter ) with Beijing eastern clear big pany law case and the management software of official business is the structural management software of B/S , policemen each working station in local area work pass through WWW browser can realize working business. Especially in JAVA step platform language appearance after, the configuration management software of B/S is more facilitated , is shortcut, efficient. ( 1 ) The Maintenance of inferior position and upgrading way are simple. Now upgrading and the improvement of software system more and more frequently, Servlet 和 Jsp 技術(shù)概要 軟件工程 081 婁文 520813130116 6 the product of the configuration of B/S embodies more convenient property obviously. For one a little a little bit big unit , if systematic administrator needs , between hundreds of 1000 even last puters round trip run , efficiency and workload is to can imagine, but the configuration of B/S software needs management server have been all right , all customer ends are browser only, need not do any maintenance at all. No matter the scale of user has , is what , has how many branch will not increase any workload of maintenance upgrading , is all to operate needs to aim at server to go on。t support them and developers don39。 關(guān)鍵字 : JSP 技術(shù), Servlet, HTTP 服務(wù) 的功能 Servlets 是運(yùn)行在 Web 或應(yīng)用服務(wù)器上的 Java 程序,它是一個(gè)中間層,負(fù)責(zé)連接來(lái)自 Web瀏覽器或其他 HTTP客戶程序的請(qǐng)求和 HTTP服務(wù)器上的數(shù)據(jù)庫(kù)或應(yīng)用程序。 圖 中間件的作用 ( 1) 讀取客戶發(fā)送的顯式數(shù)據(jù)。然而,數(shù)據(jù)還有可能來(lái)自 applet 或定制的 HTTP 客戶程序。 圖 中顯示了一條從客戶端到 Web 服務(wù)器的單箭頭,但實(shí)際上從客戶端傳送到 Web 服務(wù)器的數(shù)據(jù)有兩種,它們分別為用戶在表單中輸入的顯式數(shù)據(jù),以及后臺(tái)的 HTTP 信息。 HTTP 信息包括 cookie、瀏覽器所能識(shí)別的媒體類型和壓縮模式等。 這個(gè)過(guò)程可能需要訪問(wèn)數(shù)據(jù)庫(kù)、執(zhí)行 RMI 或 EJB 調(diào)用、調(diào)用 Web服務(wù),或者直接計(jì)算得出對(duì)應(yīng)的響應(yīng)。該數(shù)據(jù)庫(kù)可Servlet 和 Jsp 技術(shù)概要 軟件工程 081 婁文 520813130116 11 能不理解 HTTP,或者不能返回 HTML 形式的結(jié)果,所有 Web瀏覽器不能直接與數(shù)據(jù)庫(kù)進(jìn)行會(huì)話。對(duì)應(yīng)大多數(shù)其他應(yīng)用程序,也存在類似的問(wèn)題。 ( 4) 向客戶發(fā)送顯式數(shù)據(jù)(即文檔)。但是,到目前為止,HTML 式最常用的格式,故而 servelt 和 JSP 的重要任務(wù)之一就式將結(jié)果包裝到HTML 中。 圖 中顯示了一條從 Web 中間層到客戶端的單箭頭。同樣,兩種數(shù)據(jù)對(duì)開(kāi)發(fā)來(lái)說(shuō)都式至關(guān)重要的。 動(dòng)態(tài)構(gòu)建網(wǎng)頁(yè)的原因 預(yù)先建立的文檔可以滿足客戶的許多請(qǐng)求,服務(wù)器無(wú)需調(diào)用 servlet 就可以處理這些請(qǐng)求。實(shí)時(shí)構(gòu)建頁(yè)面的理由有很多種: 網(wǎng)頁(yè)基于客戶發(fā)送的數(shù)據(jù)。在沒(méi)有讀取到用戶提交的數(shù)據(jù)之前,我們不知道應(yīng)該顯示什么。兩種輸入都可用來(lái)構(gòu)建輸出頁(yè) 面。 頁(yè)面由頻繁改變的數(shù)據(jù)導(dǎo)出。但是,如果頁(yè)面周期性地改變,我們可以用兩種方式來(lái)處理它:周期性地在服務(wù)器上構(gòu)建新的頁(yè)面(和客戶請(qǐng)求無(wú)關(guān)),或者僅僅在用戶請(qǐng)求該頁(yè)面時(shí)再構(gòu)建。例如,天氣預(yù)報(bào)或新聞網(wǎng)站可能會(huì)動(dòng)態(tài)地構(gòu)建頁(yè)面,也有可能會(huì)返回之前構(gòu)建的頁(yè)面(如果它還是最新的話)。 如果數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫(kù)中,那么,即使客戶端使用動(dòng)態(tài) Web 內(nèi)容,比如applet,我們依舊需要執(zhí)行服務(wù)器端處理。顯然,這樣很愚蠢;這種情況下,我們需要與數(shù)據(jù)庫(kù)進(jìn)行會(huì)話。畢竟數(shù)據(jù)庫(kù)調(diào)用通常是對(duì)速度影響最大的步驟,因而, 經(jīng)過(guò)中間層可以執(zhí)行高速緩存和連接共享。例如, servlet 能夠嵌入到 FTP或郵件服務(wù)器中,擴(kuò)展他們的功能。 Servlet 相對(duì)于“傳統(tǒng)” CGI 的優(yōu)點(diǎn) 和傳統(tǒng) CGI 及許多類 CGI 技術(shù)相比, Java servelt 效率更高、更易用、更強(qiáng)大、更容易移植、更安全、也更廉價(jià)。如果 CGI 程序自身相對(duì)比較簡(jiǎn)短,那么啟動(dòng)進(jìn)程的開(kāi)銷會(huì)占用大部分執(zhí)行時(shí)間。類似地,應(yīng)用傳統(tǒng)的 CGI 技術(shù),如果存在對(duì)同一 CGI程序的 N 個(gè)請(qǐng)求,那么 CGI 程序的代碼會(huì)載入內(nèi)存 N次。這種方式減少了服務(wù)器的內(nèi)存需求,通過(guò)實(shí)例化更少的對(duì)象從而節(jié)省了時(shí)間。這種方式難以緩存計(jì)算結(jié)果,保持?jǐn)?shù)據(jù)庫(kù)連接打開(kāi),或是執(zhí)行依靠持續(xù)性數(shù)據(jù)的其他優(yōu)化。 Servlet 和 Jsp 技術(shù)概要 軟件工程 081 婁文 520813130116 13 便利 Servelt 提供大量的基礎(chǔ)構(gòu)造,可以自動(dòng)分析和解碼 HTML 的表單數(shù)據(jù),讀取和設(shè)置 HTTP 報(bào)頭,處理 cookie,跟蹤會(huì)話,以及其他次類高級(jí)功能。另外,如果您已經(jīng)了解了 Java 編程語(yǔ)言,為什么還有學(xué)校 Perl 呢?您已經(jīng)承認(rèn)應(yīng)用 Java 技術(shù)編寫(xiě)的代碼要比 Visual Basic, VBScript 或 C++編寫(xiě)的代碼更可靠,且更易重用,為什么還有倒退回去選擇那些語(yǔ)言來(lái)開(kāi)發(fā)服務(wù)器端的程序呢? 強(qiáng)大 Servlet 支持常規(guī) CGI 難以實(shí)現(xiàn)或根本不能實(shí)現(xiàn)的幾項(xiàng)功能。例如,與 Web服務(wù)器的通信使得講相對(duì) URL 轉(zhuǎn) 換成具體的路徑名變得更為容易。 Servelt 還能維護(hù)請(qǐng)求之間的信息,使得諸如會(huì)話跟蹤和計(jì)算結(jié)果緩存等技術(shù)變得更為簡(jiǎn)單。所有主要的 Web 服務(wù)器。因此。 iPla Enterprise Server。他們是 java2 平臺(tái)企業(yè)版的一部分,所以對(duì)servlet 的支持越來(lái)越普遍。它是隨著 Inter技術(shù)的興起,對(duì) C/S 結(jié)構(gòu)的一種變化或者改進(jìn)的結(jié)構(gòu)。這樣就大大簡(jiǎn)化了客戶端電腦載荷,減輕了系統(tǒng)維護(hù)與升級(jí)的成本和工作量,降低了用戶的總體成本( TCO)。它是一次性到位的開(kāi)發(fā),能實(shí)現(xiàn)不同的人員,從不同的地點(diǎn),以不同的接入方式(比Servlet 和 Jsp 技術(shù)概要 軟件工程 081 婁文 520813130116 14 如 LAN, WAN, Inter/Intra 等)訪問(wèn)和操作共同的數(shù)據(jù)庫(kù);它能有效地保護(hù)數(shù)據(jù)平臺(tái)和管理訪問(wèn)權(quán)限,服務(wù)器數(shù)據(jù)庫(kù)也很安全 。特別是在 JAVA 這樣的跨平臺(tái)語(yǔ)言出現(xiàn)之后, B/S 架構(gòu)管理軟件更是方便、快捷、高效。 目前,軟件系統(tǒng)的改進(jìn)和升級(jí)越來(lái)越頻繁, B/S 架構(gòu)的產(chǎn)品明顯體現(xiàn)著更為方便的特性。無(wú)論用戶的規(guī)模有多大,有多少分支機(jī)構(gòu)都不會(huì)增加任何維護(hù)升級(jí)的工作量,所有的操作只需要針對(duì)服務(wù)器進(jìn)行;如果是異地,只需要把服務(wù)器連接專網(wǎng)即可,實(shí)現(xiàn)遠(yuǎn)程維護(hù)、升級(jí)和共享。今后,軟件升級(jí)和維護(hù)會(huì)越來(lái)越容易,而使用起來(lái)會(huì)越來(lái)越簡(jiǎn)單 ,這 對(duì)用戶人力、物力、時(shí)間、費(fèi)用的節(jié)省是顯而易見(jiàn)的,驚人的。 ( 2)成本降低,選擇更多 。 現(xiàn)在的趨勢(shì)是凡使用 B/S 架構(gòu)的應(yīng)用管理軟件,只需安裝在 Linux 服務(wù)器上即可,而且安全性高。 比如說(shuō)很多人每天上“新浪”網(wǎng),只要安裝了瀏覽器就可以了, 并不需要了解“新浪”的服務(wù)器用的是什么操作系統(tǒng),而事實(shí)上大部分網(wǎng)站確實(shí)沒(méi)有使用windows 操作系統(tǒng),但用戶的電腦本身安裝的大部分是 windows 操作系統(tǒng)。 由于 B/S 架構(gòu)管理軟件只安裝在服務(wù)器端 ( Server)上 , 網(wǎng)絡(luò)管理人員只需要管理服務(wù)器就行了,用戶界面主要事務(wù)邏輯在服務(wù)器( Server)端完全通過(guò)Servlet 和 Jsp 技術(shù)概要 軟件工程 081 婁文 520813130116 15 WWW 瀏覽器實(shí)現(xiàn),極少部分事務(wù)邏輯在前端( Browser)實(shí)現(xiàn),所有的客戶端只有瀏覽器,網(wǎng)絡(luò)管理人員只需要做硬件維護(hù)。因此,許多單位都備有數(shù)據(jù)庫(kù)存儲(chǔ)服務(wù)器,以防萬(wàn)一。因此,通過(guò)使用 servelt 和 jsp,我們可以從免費(fèi)或廉價(jià)的服務(wù)器開(kāi)始,在項(xiàng)目獲得初步成功后,在移植到更高性能或高級(jí)管理工具的昂貴的服務(wù)器上。 價(jià)格和可移植性在某種程度上是相互關(guān)聯(lián)的。印度接近列表的頂端,可能僅次于美國(guó)。 那么,為什么印度和菲律賓都對(duì)這項(xiàng)技術(shù)著呢感興趣呢?我們推測(cè)答案可能分兩部分。其次,這兩個(gè)國(guó)家的貨幣對(duì)美元的匯率都極為不利。 但是,使用 servlet 和 JSP,他們能夠從免費(fèi)的服務(wù)器開(kāi)始: Apache Tomcat。他們的 servelt 和 jsp 不需要重寫(xiě)編寫(xiě)。沒(méi)有問(wèn)題:他們可以轉(zhuǎn)而使用 Macromedia JRun Professional,該服務(wù)器支持分布式應(yīng)用。如果項(xiàng)目變得極為龐大,錯(cuò)綜復(fù)雜,他們或許希望使用Enterprise JavaBeans 來(lái)封裝他們的商業(yè)邏輯。同樣,不需要對(duì) servlet 和 jsp做出更改。他們還是不需要做出任何更改。因此 ,CGI 程序必須仔細(xì)地過(guò)濾掉那些可能被外殼特殊處理的字符,如反引導(dǎo)和分號(hào)。 問(wèn)題的第二個(gè)來(lái)源是,一些 CGI程序用不自動(dòng)檢查數(shù)組和字符串邊界的語(yǔ)言編寫(xiě)而成 。因而,如果程序員忘記執(zhí)行這項(xiàng)檢查,就會(huì)將系統(tǒng)暴露在蓄意或偶然的緩沖區(qū)溢出攻擊之下。即使 servelt 執(zhí)行系統(tǒng)調(diào)用激活本地操作系統(tǒng)上的程序,它也不會(huì)用到外殼來(lái)完成這項(xiàng)任務(wù)。 主流 雖然存在許多很好的技術(shù),但是,如果提供商助支持他們,或開(kāi)發(fā)人員不知道如何使用這些技術(shù),那么它們 的優(yōu)點(diǎn)又如何體現(xiàn)呢? servelt 和 jsp 技術(shù)得到服務(wù)器提供商的廣泛支持,包括 Apache, Oracle, IBM, Sybase, BEA, Maromedia,Causho, Sun/iPla, New Atlanta, ATG, Fujitsu, Lutris, Silverstream,World Wide Web Consortinrm ,以及其他服務(wù)器。它們用在航空業(yè)、電子商務(wù)、在線銀行、 web 搜索引擎、門戶、大型金融網(wǎng)站、以及成百上千您日常光顧的其他網(wǎng)站。很多泛美的例子。