VisualAge for Java開發Servlets

來源:互聯網
上載者:User

使用VisualAge for Java

Servlets是Java編程環境中一個非常有生命力的新鮮事物,本文描述了Servlets,並介紹如何用VisualAge for Java迅速開發Servlets。Servlets開發中應用到的VisualAgeforJava的關鍵技術是VisualAgeforJava的類比多種虛擬機器環境的能力,以及代碼增加編輯並串連到運行中的程式中的能力。

  背景

  在WWW的初期,程式員們很快就意識到,通過使用公用網關介面(CGI),WWW可以成為一個令人信服的應用開發平台。事實上,一個CGI程式就是把各種能力擴充到Web伺服器中的一個插入模組。然而,CGI的最初設計要求為每一個請求服務建立一個單獨的進程,從而增加了效能和資源的消耗。為改進CGI的效能和可擴充性,Web伺服器廠商引進了專有的APIs,例如網景公司的NSAPI、微軟公司的ISAPI和IBM的GWAPI,同時,網景公司還為Navigator引人了一個Web瀏覽器插入API。這樣一來,Web客戶機和伺服器都可以通過插入而加以擴充。不幸的是,這一插入要求使用專用的APIs,對於不同的作業系統版本也不同。

  Sun公司推出的Java和定義的AppletAPI帶來了WWW的第二次進步,AppletAPI為開發人員提供了一個擴充Web瀏覽器的標準和與平台無關的方式。現在,Sun公司使Java成為建立N層企業級應用軟體又推出了ServletAPI,為Web伺服器帶來了同樣的優點。熱心者可以通過訪問http://java.sun.com瞭解Servlet,還可以從這裡下載文檔和JavaServlet開發套件(JSDK)。在下面的討論中,我們將會提到JSDK1.0.1。
運行Servlet

  運行Servlet的最好開端是下載JSDK和運行範例,並在Web伺服器上配置Servlet。使用者可以用ServletRunner(srun)測試Servlet,ServletRunner是一個包含在JSDK中的小程式,是一個簡化的Web伺服器,與AppletViewer相似,只要Applet一串連上,它就能夠成為一個簡化的Web瀏覽器。

  假設使用者正在WindowsNT平台上工作,並已安裝了JSDK1.1.x或JSDK1.0.1,開啟一個命令提示字元,並轉到JSDK目錄,例如,E:\JSDK。在這個目錄中,bin子目錄中包含了ServletRunner,servlet子目錄中包含了servlet範例。然後進入servlet子目錄,鍵入下面命令:

  E:\JSDK\servlet>..\bin\srun-v

  現在,就有了一個監聽8080連接埠的Web伺服器,"-v"選項向命令提示字元視窗產生詳細的輸出。下面,開啟任意一個Web瀏覽器,例如網景的Navigator,並開啟http://127.0.0.1:8080/servlet/HelloWorldServlet。ServletRunner載入了HelloWorldServlet類,為它構造一個環境,調用其init()方法,然後調用它的service()方法,service()方法有一個請求參數和響應參數。HelloWorldServlet對象簡單地給響應對象寫一個HTML首頁,該響應對象被返回到Web瀏覽器並顯示。在第一次服務要求之後,該servlet保持啟用狀態,並處於待命狀態,可以處理進一步的請求。servlet的構造必須能夠處理多個並發服務要求,因為每一請求都是從自己的線程開始的。當ServletRunner終止時,它調用servlet的destroy()方法。

  在Servlet生命週期的最後階段,使用者必須停止並重新啟動ServletRunner(或Web伺服器),以得到一個更新的servlet類檔案。在開發過程中,使用者會經常改變servlet代碼,所以使用ServletRunner可能會很單調乏味,特別是在servlet開始運行了一段時間以後,不得不調試一個問題的時候。幸運的是,來自IBM的VisualAgeforJava提供了一個效率更高的開發Servlet軟體的方式。

  要停止ServletRunner,在命令提示字元視窗中鍵入Ctrl-C即可。  

VisualAge for Java有兩個關鍵技術,使開發servlet非常方便:一個是多種虛擬機器環境類比,另一個是代碼增加編輯並串連到運行中的程式。

  JSDK包含了ServletRunner原始碼(srun.c),如果仔細考察一下,就會看到ServletRunner只是簡單地運行sun.servlet.http.HttpServer類。由於ServletRunner是一個Java程式,可以在VisualAgeforJava中把它當作一個類比虛擬機器環境來運行。啟動VisualAgeforJava,並建立一個叫做JSDK的新項目。下面,解壓縮E:\JSDK\lib\classes.zip檔案,輸出到一個temp目錄(或簡單地拷貝到classes.jar),並把類檔案(或jar檔案)輸入到JSDK項目下。這時會產生幾個問題,因為classes.zip檔案丟失了某些用於NetscapeWeb伺服器支援的類。刪除sun.servlet.netscape軟體包來清除這些問題,選擇sun.servlet.http.HttpServer類並運行它(提供-v參數來把詳細結果輸出到控制台視窗)。現在,開發環境就是一個Web伺服器!

  下一步,對於範例sevlets,把這些原始碼從E:\JSDK\servlrts目錄輸入到JSDK項目,在Workbench視窗中的項目定位字元中擴充HelloWorldServlets類,並選擇doGetO方法。在源窗格中,在該行的起始處放入一個插入點,內容如下:out.printin(HelloWorld);插入一個斷點,在Web瀏覽器中重新載入HelloWorldServletsURL。將命令改成:out.print("Hello VisualAge");然後,儲存這一變更。VisualAgeforJava僅僅編輯這個修改的類方法,並將其串連到運行程式中。其重要之處在於:認識到增加編輯只是事情的一半,真正的效率在於不必重新啟動正在調試的程式,也不必重新建立引起問題的程式執行狀態,正是這種程式執行狀態產生了這些問題,而使用者正在設法處理。

  通過幾行程式碼,檢測任何感興趣的變數,單擊Resume按鈕來完成服務要求,修改後的HTML頁將在Web瀏覽器中出現。

  使用VisualAgeforJava,可以修改運行中的servlet,因此沒有必要重複性地停止和啟動Web伺服器。此外,當伺服器運行時,使用者仍會擁有所有希望的開發環境。

  結論

  Servlet是Web應用開發中的一個重要進步。VisualAgeforJava通過ServletRunner對開發Servlet、增加編輯和串連到運行中的程式有很好的支援。將來,IBM還會通過將Web串連技術擴充到Smalltalk和C++對Java的串連,進一步來加強對Servlet的支援。在IBM軟體技術的協助下,使用者將能夠從HTMLJavaBean中使用VisualAgeforJavaCompositionEditor,進而可視化地建立Servlets。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.