程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> 淺談Java Servlets與CGI程序

淺談Java Servlets與CGI程序

編輯:關於JSP

從網絡的早期階段開始,人們就希望他們的網絡服務器不僅能夠顯示靜態文檔,通用網關接口(CGI) 擴展了服務器的能力,但其代價是增加了額外的處理進程。FastCGI則把外部CGI 處理進程同網絡服務器更緊密地集成在一起,另外,對於專有的,諸如NSAPI 和ISAPI 這樣的服務器API,它們直接把外部進程以服務器插件的形式集成到服務器中。現在有了Java Servlets,它們的功能強大,可以快速替代你現有的CGI程序。

什麼是Servlets?

就象applet擴充了網絡浏覽器的能力一樣,Servlets這個Java部件,擴充了網絡服務器的能力。對於任何種類的服務器端的處理,Servlets可以作為server-side includes使用或者作為CGI程序(在JavaSoft的Java Web server中可以作為插件)執行。 Servlets可以移植,不象CGI和專有的API模塊,你可以利用Java的“編寫一次,到處運行”的機制,在你的企業中配置網絡應用程序。Servlets的運行也很穩固,在 Servlet 中你創建了一個數據庫連接,下一次你訪問Servlet時連接仍然存在,這同CGI程序不一樣。Servlets也具有擴展性,所以你可以使用面向對象的程序設計方法,來減少開發時間。Servlets可以運行在任何支持Servlet 的網絡服務器上。目前,Servlet SDK除了支持JavaSoft的Java Web server,還支持Netscape, Apache 和IIS,以及大量第三方的網絡服務器。

運行你的Servlet

一旦編寫好Servlet,並且編譯成功之後,你可以把它放到網絡服務器中Servlet別名目錄中。就同服務器中的cgi-bin別名目錄的作用一樣,任何放在Servlet 目錄中的文件,一旦被作為url的一部分被請求時,將被作為Servlets執行。例如,BasicCGIServlet可以通過如下的url調用: http://mycompany.com/Servlet/BasicCGIServlet。你既可以直接調用該url (並且傳送給Servlet一個請求關鍵字/值對的串),也可以通過HTML表單中的一個動作來調用。要了解更多的支持Servlet的網絡服務器的信息,請參閱JSDK中的有關文檔信息。

進一步的用法

GenericServlet和 HttpServlet提供了一個構建Servlets的固定的基類。通過重載service()方法,你可以在它們的基礎上進行構建。例如,你可以加入對響應緩存的支持請參見HttpServlet 中的getLastModified()),也可以加入對HTTP 1.1方法的支持,等等。你甚至可以構建一個擴展的模板引擎。有誰真的喜歡在他們的程序中內置HTML代碼呢?)

另外一個用法是對JSDK進行擴展,使之除了支持標准的application/x-www-form-urlencoded mime 類型之外,還支持其他類型的表單編碼。例如,你可以加入對multipart/form-data mime類型的支持,用於處理通過HTTP上載文件。接口方法getParameterNames(), getParameterValues()等等,都是在sun.Servlet包中實現的,所以你需要配置JSDK ,以便加入這些支持。還有一種變通的方法,你可以自己實現有關方法,但那樣做,就需要復制代碼或者改變JSDK的語義。上面的這些方法都是可行的,但是沒有哪一種是完美無缺的。

結論

現在你應該會自己創建Java Servlets了,它們可以用來代替傳統的Perl和C/C++ CGI程序。 Java的面向對象的特性和“編寫一次,到處運行”的機制使得Java Servlets的編寫很簡單。Servlet的穩固性,可以解決有關狀態管理問題,而這些都是只用一次的CGI程序解決實際問題時通常會遇到的難題。Servlets可以利用Java語言的所有功能,包括JDBC和RMI。由於大多數網絡服務器都加入了對Servlet的支持,Java將迅速成為開發企業級應用程序的一種可選語言。

  1. Servlet容器的會話跟蹤
  2. 詳解Servlet實例
  3. 淺談Servlet讀取請求頭
  4. 調用Http Servlet Request的方法
  5. 淺析Servlet基本結構

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved