Java web應用開發概覽(轉貼)
發表時間:2024-01-28 來源:明輝站整理相關軟件相關文章人氣:
[摘要]Web開發(Web Development)是JBuilder Professional 和 Enterprise版權的特性. Applet 開發是 JBuilder所有版本開發的一個特性.本節介紹了web開發技術。包含了他們的異同點。討論了如何決定使用何種技術。我們首先介紹這些技術的概念。 We...
Web開發(Web Development)是JBuilder Professional 和 Enterprise版權的特性. Applet 開發是 JBuilder所有版本開發的一個特性.本節介紹了web開發技術。包含了他們的異同點。討論了如何決定使用何種技術。我們首先介紹這些技術的概念。
Web應用程序技術
技術描述
Applets
一種可以被瀏覽器下載并在瀏覽器上運行的Java小應用程序。
Servlets
可以處理客戶請求的運行在服務器端的Java應用程序。
JavaServer Pages (JSP)
一種擴展的servlet技術。JSP重點在于提供一種簡單的開發servlet的方法。它們在開發時表現不同,但當第一次運行后,JSP都被Web服務器編譯成servlet。
InternetBeans Express
一種元件庫,用于提供簡化代表和操作數據庫中的數據。此技術用于聯接servlet和JSP技術,并簡化數據敏感的servlet和JSP的開發。
本文簡介給出了這些技術的基本概念。但是如何使用這些技術,它們的好處與缺點是什么?我們將在以下的部分給出解答。
Applets
當Java語言首次可用時,applet造成了很大的紛亂。此時web技術尚未得到很大的發展。而applet那時解決了開發者面對的一些難題。實際上,applet變得如此流行以致今天開發applet是Java學習課程的一個基本內容。結果是,一個通常的錯誤觀念是Java開發者過多地依賴于applet。Applet應在特定的情況下使用,它并非解決所有Web開發問題的神奇解決方法。
使用applets的缺點在于:
*分發與測試是困難的.
*依賴于客戶機的瀏覽器是否允許Java運行。
*不同的瀏覽器版本支持不同版本的JDK, 并且一般不是最新的JDK版本。
*applet第一次啟動很慢。因為客戶機必須將它從服務器上下載.
*以上的一些問題可以有其它的解決方案(此處不加預討論)。當考慮使用applet時,應首先考慮是否有其它的Java技術可以實現你的目的。
使用applets的優點在于:
*Applets 可以提供比servlets 和 JSP更加復雜的界面。
*因為 applets 是從服務器上下載并運行在客戶機上,web服務器不必支持Java.這一點很重要,尤其是當你為一個站點寫一個web應用,而無權控制web服務器時。如你的站點空間由一個外部的ISP提供時。
*Applet可以進行本地校驗,而不必在遠端的服務器上進行校驗。當然你也可以是JavaScript 加上servlet 或 JSP來完成此功能.
*在applet下載完成后,瀏覽器致電服務器的連接請求數目將會下降。因為大量的處理將在客戶瀏覽器上完成.
Servlets
Servlets 是與web服務器集成的Java程序,它運行在服務器端處理來自客戶機的請求。它們需要支持JavaServer技術的web服務器。如與Jbuilder一起發行的Tomcat 服務器 (Tomcat 同樣可與不支持JavaServer技術的web服務器進行集成,如Micro$oft IIS)。 Java 的servlets可以用于代替Common Gateway Interface (CGI) 程序,或用于以前采用CGI的相同的情形。
采用servlet比 CGI的好處在于:
*減少內存開銷
*平臺無關
*協議無關
*你可以使用任何開發語言編寫的客戶程序來向servlet發送請求。客戶可以是簡單到HTML頁。你也可以使用applet作為客戶,或用非java語言編寫的程序。在服務器端,servlet處理請求,并生成動態的輸出,發送給客戶。Servlet一般沒有用戶界面。但你可在客戶端可選地提供用戶界面。
采用servlet的好處在于:
*你不必擔心客戶瀏覽器是否在運行 JDK . Java 甚至可以在客戶瀏覽器中被屏障。所有的Java元素者都在服務器端執行.這使得服務器管理者具有更多的控制能力。
*當servlet 啟動后,來自客戶瀏覽器的請求簡單的調用運行著的servlet的service()方法. 這意味著客戶不會象applet一樣花費大量的下載時間而導致性能下降。
*在web服務器上發布servlet是要一樣的技巧的,當然也并非不可能的。JBuilder提供了一些工具使得發布變得更加容易。
JavaServer Pages (JSP)
JavaServer Pages (JSP) 是servlet 技術的擴展。.這是一種著重于servlet編寫的簡化方法,更著重于應用程序的表述方面。
servlet與JSP之間最主要的區別在于: 對于servlets技術,程序的邏輯是保存在 Java 文件中,與作為表現層的 HTML完全分開。 而對于JSP技術, Java 與HTML 被合并在一個后綴為 .jsp 的文件中。
當web服務器處理JSP文件時,首先生成一個servlet,但當你在開發JSP時,你不會看到這個生成的servlet。 實際上,當你在JBuilder的IDE環境中編譯并運行JSP時,你會看到生成的servlet所報告的異常與處理信息。這會有一個混亂,因為這些信息不能準確地定位錯誤或異常發生在JSP的哪行代碼,實際上它們只是已生成代碼的信息。
與servlet相比,JSP的好處在于:
*寫更少的代碼。
*易于和已存在的Java beans合并。
*發布更多簡單。更多的發布問題已經自動為你完成。因為JSPs映射到 web服務器的方法與 HTML文件相同。
*不必在JSP生成的servlet中嵌入java代碼。相反,是在HTML中離散地嵌入Java代碼。如果有足夠仔細的計劃,這些java代碼塊從HTML文件中完整地分離出來,使得JSP更具有可讀性。
使用 JSP的缺點在于:
*不可見的、生成的servlet代碼可能導致混淆,如前所述。
*由于 HTML 與 Java are 混合在一個文件中, Java開發者與web設計者一起工作時必須足夠仔細,以免覆蓋另一方的更新。
*合并的java與HTML會導致可讀性差,如果你不仔細地遵守統一的編程規范的話,這個缺點將尤其明顯。
*JSP與ASP(Active Server Pages)非常相似。最主要的區別在于JSP操作的對象是JavaBeans,具有平臺無關性。而ASP操縱的對象是COM對象,只能在Micro$0ft平臺上使用。
InternetBeans Express
InternetBeans Express 技術集成了 servlet 與 JSP 技術,為你的應用程序增加了價值,并簡化了servlet 與 JSP 的開發任務。InternetBeans Express 是一個元件集合、一個生成與響應web應用的表示層JSP標簽庫。 它使用靜態的模板頁,從活動的數據模型中插入動態內容,并把它們發送給客戶。然后它將客戶的改變改寫到數據模型中。這使得創建數據敏感的servlet和JSP更加容易。
InternetBeans Express 含有內建的 DataExpress DataSets 和 DataModules支持。它還可以來通用的數據模型及EJB一起使用。
決定在web應用中使用何種技術:
現在你已經概覽了相當的web技術,你如何決定在web 應用中使用何種技術?下面是一些技巧也許會有所幫助:
*你是否需要一個復雜的用戶界面?如果你的界面比數據錄入元素(文本域,無線按鈕,組合框,列表框,發送按鈕,等等)、圖象更加復雜,你可能使用applet。
*如果你要完成大量的服務器端的處理,應選用servlet 或 JSP。
*如果你要避免用戶下載大量的代碼來加整應用的啟動,應選用servlet 或 JSP。
*如果你想控制應用的JDK版本,或你關心不允許Java在瀏覽器中使用的用戶,應選用servlet 或 JSP。
*如果你在查找CGI的替代器,使用更少的內存開銷,應選用servlet 或 JSP。
*如果你需要與ASP相似的實現,并要求實現平臺無關性,應選用JSP。
*如果你需要復雜的用戶界面,但你還要一些servlet或JSP的特性,考慮聯合applet和servlet,可以在客戶瀏覽器中使用applet,而在服務器端使用servlet。
*如果你使用servlet或JSP,并想要使之數據敏感,應選用 InternetBeans Express。
*Servlet與JSP十分相似,其選用的原則很大部分在于個人的愛好。
記�。汉芏鄔eb應用會聯合使用兩種或多種這些技術。
基本的web應用的開發過程
不論選用何種web技術,開發web應用及使之在web服務器上運行的基本步驟如下:
*設計應用程序
決定你的應用程序的結構及采用的技術。決定應用程序的功能、外觀。這一階段,你可能想創建一個WebApp.
*在JBuilder IDE中配置你的web服務器
你可以可選地在JBuilder IDE中設置你的web服務器,這樣你才能編譯、運行、調試你的應用程序,并以后發布到相同的web服務器的環境中。如果你跳過此步驟,JBuilder會自動使用捆綁發行的Tomcat,進行編譯、運行和調試。
*開發應用程序
編寫應用程序的代碼,不論你的應用程序由applets, servlets, 或 JavaServer Pages構成,使用 JBuilder的工具可以簡化開發的任務。
*編譯應用程序
在JBuilder IDE中編譯應用程序.
*運行應用程序
在JBuilder IDE中運行應用程序.不必分發,此時你可以預覽應用程序。在此階段,你可以作應用程序的本地測試。
*發布應用程序
發布應用程序到web服務器.發布的特定步驟與你所選用的 web 服務器緊密相關。
*測試應用程序
測試運行在web服務器上的應用程序。這會幫助你發現應用程序的發布問題、或應用程序本身的問題。你應該使用與web服務器不同的機器上的客戶瀏覽器進行測試。你可以嘗不同的類型的瀏覽器,因為應用程序在不同的瀏覽器中的表現可能會有細微的不同。
Web應用 vs. 分布式應用
你可能會考慮選用分布式應用而不是Web應用。這兩者都是client/server編程。此處給出這兩種技術的區別之處:
*一般而言,分布式應用從已有的系統中管理和檢索數據,已有的系統可能存在于運行不同操作系統的大量的計算機中。分布式應用使用應用服務器,如Borland Applicatoin Server,來進行應用程序管理。分布式應用程序不必基于java,實際上,分布式應用程序可以包含不同的程序,而與其實現的語言無關。
*分布式應用經常配置在一個公司的內部網中。你可以使得客戶可以通過Internet訪問你的分布式應用,但是你必須聯合使用分布式應用和web應用。
在分布式應用中使用的技術有Common Object Request Broker Architecture (CORBA)和 Remote Method Invocation (RMI):
CORBA的主要好處是客戶機與服務器可以用不同的程序開發評議編寫。這種可能性的由來在于對象是由Interface Definition Language (IDL)定義的, 并且對象、客戶、和服務器之間的通訊處理是由Object Request Brokers (ORBs)來實現的.
Remote Method Invocation (RMI) 使得你可以創造 Java-Java 的分布式應用程序。這種技術下,遠程的java對象可以直接調另一個JVM(可能在另一臺機器上)上的java對象。
Web應用可以使得有權使用Internet的人訪問它。你可以將它放在防火墻后,并使它只能在你的公司內部網中起作用。
Web應用需要在客戶機端擁有游覽器,而服務器端擁有web服務器。例如,applet下載到多個客戶平臺并在客戶瀏覽器提供的JVM平臺上運行。Servlet和JSP運行在Java允許的可以提供JSP/Servlet特性的web服務器上。
web應用可以是大型的分布式應用的一個部分。而分布式應用也可以是企業級的、或者說J2EE應用的一個部分。關于J2EE應用示例和支持文檔,參見在 http://java.sun.com/j2ee/blueprints/中的 Java 2 Platform, Enterprise Edition Blueprints . 特定的章節名為 "The Client Tier" 和 "The Web Tier."