溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎樣淺談Java Servlets與CGI程序

發(fā)布時間:2021-11-20 17:09:38 來源:億速云 閱讀:123 作者:柒染 欄目:編程語言

怎樣淺談Java Servlets與CGI程序,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

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

什么是Servlets?

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

運行你的Servlet

一旦編寫好Servlet,并且編譯成功之后,你可以把它放到網(wǎng)絡服務器中Servlet別名目錄中。就同服務器中的cgi-bin別名目錄的作用一樣,任何放在Servlet 目錄中的文件,一旦被作為url的一部分被請求時,將被作為Servlets執(zhí)行。例如,BasicCGIServlet可以通過如下的url調用: http://mycompany.com/Servlet/BasicCGIServlet。你既可以直接調用該url (并且傳送給Servlet一個請求關鍵字/值對的串),也可以通過HTML表單中的一個動作來調用。要了解更多的支持Servlet的網(wǎng)絡服務器的信息,請參閱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包中實現(xiàn)的,所以你需要配置JSDK ,以便加入這些支持。還有一種變通的方法,你可以自己實現(xiàn)有關方法,但那樣做,就需要復制代碼或者改變JSDK的語義。上面的這些方法都是可行的,但是沒有哪一種是完好無缺的。

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

看完上述內容,你們掌握怎樣淺談Java Servlets與CGI程序的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

cgi
AI