servlet開發初步

來源:互聯網
上載者:User
 Servlet是Java語言在WEB伺服器端的一種應用技術,未來Servlet將可能徹底取代CGI。本講座將具體介紹Servlet的概念、開發、調試以及相應的應用執行個體。 

  一、什麼是Servlet? 

  ·Servlet是一種獨立於平台和協議的伺服器端的Java應用程式,可以產生動態Web頁面。 

  ·Servlet是位於Web 伺服器內部的伺服器端的Java應用程式,與傳統的從命令列啟動的Java應用程式不同,Servlet由Web伺服器進行載入,該Web伺服器必須包含支援Servlet的Java虛擬機器。 

  ·Servlet與Web伺服器的關係類似於Applet與Web瀏覽器的關係(這也是為什麼Servlet技術被稱為Servlet的原因),我們可以將Servlet想象成沒有前端介面(faceless)的Applet。與Applet不同的是,由於Servlet運行在Web伺服器端,因此它是一個可信賴的程式,不受到Java安全性的限制,擁有和普通Java應用程式一樣的許可權。 

  ·Servlet是CGI Script的一種替代技術,由於Servlet在效能、可移植性、代碼重用等方面比CGI具有顯著的優勢,因此在未來的技術發展過程中,Servlet有可能徹底取代CGI。 

  二、編寫Servlet所需要的開發環境 

  進行Servlet開發所需要的基本環境是JSDK以及一個支援Servlet的Web伺服器。 

  1.JSDK(Java Servlet Development Kit) 

  JSDK包含了編譯Servlet應用程式所需要的Java類庫以及相關的文檔。對於利用Java 1.1進行開發的使用者,必須安裝JSDK。JSDK已經被整合進Java 1.2 Beta版中,因此如果利用Java 1.2進行開發,則不必安裝JSDK。 

  JSDK可以在Javasoft公司的網站免費下載,其地址是 

  http://jserv.javasoft.com/products/java-server/downloads/index.html 

  2.支援Servlet的Web伺服器 

  Servlet需要運行在支援Servlet的Web伺服器上。目前支援Servlet的Web伺服器首推SUN公司的 Java Web Server。如果現有的Web伺服器不支援Servlet,則可以利用一些第三方廠商的伺服器增加件(add-ons)來使Web伺服器支援Servlet,這其中Live Software公司(http://www.livesoftware.com)提供了一種稱為JRun的產品,通過安裝JRun的相應版本,可以使Microsoft IIS和Netscape Web Server支援Servlet。 

  三、開發Servlet的過程 

  本文將以編寫一個簡單的Servlet(我們稱之為HelloServlet)為例說明開發Servlet的過程。 

  1.編寫Servlet代碼 

  Java Servlet API是一個標準的Java擴充程式包,包含兩個Package∶javax.servlet和 javax.servlet.http。對於想開發基於客戶自訂協議的開發人員,應該使用javax.servlet包中的類與介面;對於僅利用HTTP 協議與用戶端進行互動的開發人員,則只需要使用javax.servlet.http包中的類與介面進行開發即可。 

  下面是一個典型的servlet的程式碼∶ 

  import javax.servlet.*; 

  import javax.servlet.http.*; 

  import java.io.*; 

  import java.util.*; 

  public class HelloServlet extends HttpServlet { 

   public void init(ServletConfig config) throws ServletException { 

    super.init(config); 

   } 

   public void service(HttpServletRequest req, HttpServletResponse res) 

  throws ServletException, IOException { 

  String clientIPAddress = req.getRemoteAddr(); 

     res.setContentType(″text/html″); 

   ServletOutputStream out = res.getOutputStream(); 

   out.println(″〈html〉″); 

   out.println(″〈head〉〈title〉Hello World〈/title〉〈/head〉″); 

   out.println(″〈body〉″); 

   out.println(″〈h1〉Hello,You come from ″+clientIPAddress+″〈/h1〉″); 

   out.println(″〈/body〉〈/html〉″); 

   } 

  } 

  該servlet實現如下功能∶當使用者通過瀏覽器訪問該servlet時,該servlet向用戶端瀏覽器返回一個HTML頁面∶ 

  Hello, You come from 192.168.0.11 

  其中192.168.0.11是用戶端IP地址。程式碼的要點如下∶ 

  ·基於HTTP協議的servlet必須引入javax.servlet和javax.servlet.http包; 

  ·HelloServlet從類HttpServlet派生,HttpServlet是GenericServlet的一個衍生類別,通過 GenericServlet實現了Servlet介面。HttpServlet為基於HTTP協議的servlet提供了基本的支援; 

  ·service()方法是servlet程式的進入點,當使用者從瀏覽器調用servlet時,servlet將進入該方法。service()包含兩個參數,HttpServletRequest對象包含了用戶端請求的資訊,可以通過該參數取得用戶端的一些資訊(例如IP地址、瀏覽器類型等)以及 HTTP請求類型(例如GET、HEAD、POST、PUT等);HttpServletResponse對象用於完成Servlet與用戶端的互動,通過調用HttpServletResponse.getOutputStream()客戶取得向用戶端進行輸出的輸出資料流,向用戶端發送HTML頁面。 

  2.編譯Servlet代碼 

  利用JDK 1.1對Servlet代碼進行編譯(假設Web伺服器採用Java Web Server),其命令列為: 

  c:/> javac -d c:/JavaWebServer/servlets HelloServlet.java 

  進行編譯時間必須保證JSDK的Java Servlet類已經包含在CLASSPTH中,上述命令將編譯後的.class代碼放置在 Java Web Server的Servlets目錄下(如果你使用其他的Web Server,需要將.class代碼放置在該Web Server 指定的目錄下)。 

  3.將Servlet添加進Web Server 

  由於Servlet是通過Web Server進行調用的,因此必須將其在Web Server中進行註冊,以便Web Server能夠正確的找到Servlet代碼。對於 Java Web Server來說,它提供了一個系統管理Applet,通過該Applet對我們的HelloServlet進行註冊(在這裡,我們將 HelloServlet命名為firstServelt)。 

  3.測試Servlet 

  現在可以對HelloServlet進行測試了,開啟瀏覽器,鍵入 

  http://192.168.0.9/servlet/firstServlet ;

  其中192.168.0.9是安裝有Java Web Server的機器IP地址。 

  如果一切正常,在瀏覽器中將返回一個頁面,輸出“Hello,You come from 192.168.0.11”。其中192.168.0.11是運行瀏覽器的機器IP地址。 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.