在今天的多層結構的web應用程序的設計中,我們可以同時使用Java Applet和Servlet。Applet為建立功能強大的動態界面提供了便利的機制,Servlet為web服務器或者其他應用服務器處理請求提供了高效率的手段。Sun公司的應用程序模型描述了在Java 2平台下開發企業級的Java應用的最好的規范。一種被推薦的規范是:在前端使用Applet、HTML和JSP,在後端使用Enterprise JavaBeans支持的Servlet及其他成分。
這種體系結構的關鍵是在客戶端的Applet和在服務器說腟ervlet之間的通信。但是由於Applet受浏覽器安全模式的限制,在一個Applet中存取數據和信息並不想看上去的那麼簡單。在這篇文章中,我們將解釋在Applet-Servlet結構中開發者所面對的限制,並探討幾個不同的可以在Applet和Servlet之間轉輸數據的通信策略。如果你已經熟悉Applet和Servlet,這肯定會對你閱讀本文有幫助,如果你還不是那麼熟悉,那也沒關系,我們會簡要地介紹它們。
Applet和Servlet的簡介
Java Applets實際上是運行在web頁面上的Java程序。它是一個繼承於java.Applet.Applet的Java類,它通過引用被嵌入到 HTML頁面中去,就象一個圖像一樣。Applet和HTML的組合,可以建立功能更為強大的動態界面。對於一些只用來滾動正文和播放動畫的 Applet,我們可以在一個企業級的應用程序中利用它來顯示和處理來自服務器上的資源的數據。例如,一個Applet可以用來浏覽和修改數據庫中的記錄或者控制運行在服務器上的其他應用程序。
Java Applet除了可以使用它自己定義的類文件外,還可以使用其他的類,不管這些類是獨立存在的還是被打包成了一個JAR文件。Applet和它的類文件通過標准的HTTP請求進行分布,所以Applet可以越過web頁面數據所在的平台的防火牆進行發送。除非是涉及到保持應用程序完整性的問題,Applet總會在每次用戶重新訪問web主機時自動刷新並會在客戶端保留一段時間。
我們得感謝Java操作系統的平台無關性,這才使得Applet可以運行在任何擁有Java虛擬機JVM)的浏覽器上。Sun公司的Java插件甚至可以使用可以利用最新版本的JVM編制頁面,而不用擔心受你的用戶的浏覽器上的JVM的版本的限制。
因為Applet是Java平台的擴展,所以在你建立用Applet建立你的web應用程序的界面時,你可以重用已存在的Java組件。正如我們在下面的例子中可以看到的那樣,你可以在你的Applet的組件中使用復雜的Java對象來開發本來由服務器端應用程序完成的工作。事實上,你可以編寫這樣的 Java代碼,它既可以在Applet上執行,也可以在應用程序內執行。
Applet具有所有傳統的Java應用程序的功能,包括使用Sun公司的JFC/Swing組件。Applets也可以用來制作圖形以及應用程序中的用戶界面盡管有些輔助的窗口會被標志為 “Warning, Java Applet Window”)。但是不管他們有多麼相似,在應用程序和Applet之間還是一些關鍵性的差別的。例如,我們不得不考慮到我們的Applet是受到安全模式的限制的。