當前位置:首頁 » Servlets » Servlet快速入門指南

Servlet快速入門

Servlets快速入門指南實例代碼教學,介紹如何快速寫一個servlet的hell word例子程序 - Java Servlet的Web或應用程序服務器,並作為請求來自Web瀏覽器或其他HTTP客戶端和HTTP服務器上的數據庫或應用程序之間的中間層上運行的程序。

Servlet是什麼?

Java Servlet的Web或應用程序服務器,並作為請求來自Web瀏覽器或其他HTTP客戶端和HTTP服務器上的數據庫或應用程序之間的中間層上運行的程序。

使用servlet,你可以收集來自用戶的輸入,通過網頁形式,現在從數據庫或其他來源的記錄,並創建動態網頁。

Java Servlet的服務程序使用公共網關接口(CGI)來實現同樣的目的。但Servlet的與CGI相比提供了幾個優點。

  • 性能明顯更好。

  • Servlet的執行的Web服務器的地址空間內。這不是必要創建一個單獨的進程來處理每個客戶端請求。

  • Servlet是與平台無關的,因為它們是用Java編寫的。

  • 在服務器上執行的Java安全管理器一組的限製,以保護服務器計算機上的資源。因此,Servlet是可信的。

  • Java類庫的全部功能,是一個servlet。它可以與小應用程序,數據庫或其他軟件,你已經通過socket和RMI機製看到了。

Servlet的體係結構:

下圖顯示了在Web應用程序的位置Servelts。

Servlet軟件包:

Java Servlet是運行的Web服務器上有一個解釋器,支持Java Servlet規範的Java類。

Servlet可以使用在javax.servletjavax.servlet.http包,這是一個標準的Java企業版的擴展版本的Java類庫,它支持大型開發項目的一部分。

這些類實現Java Servlet和JSP規範。在寫這篇教學的時候,該版本是Java Servlet 2.5和JSP 2.1。

就像任何其他的Java類,創建和編譯Java servlet。在您安裝的servlet包,並將它們添加到計算機上的類路徑中,你可以與JDK的Java編譯器或任何其他編譯器編譯servlet

設置Java開發工具包

這一步涉及到下載的Java軟件開發工具包(SDK),並適當地設置PATH環境變量的實現。
您可以下載SDK從Sun的Java servlet的網站:http://java.sun.com/products/servlet/.

一旦您下載的Java實現,按照給定的說明來安裝和配置的設置。最後,設置PATH和JAVA_HOME環境變量指向的目錄,其中包含java和javac,通常分彆為java_install_dir/bin和java_install_dir。

如果您運行的是Windows SDK安裝在C:\ jdk1.5.0_20,則需要在C:\autoexec.bat文件添加下麵一行。

set PATH=C:\jdk1.5.0_20\bin;%PATH%
set JAVA_HOME=C:\jdk1.5.0_20

另外,在Windows NT/2000/XP中,您也可以右鍵單擊“我的電腦”,選擇“屬性”,再“高級”,再“環境變量”。然後更新PATH的值,然後按“確定”按鈕。

在Unix(Solaris和Linux等),如果SDK安裝在/usr/local/jdk1.5.0_20,你使用的是C shell,你把下麵的內容添加到.cshrc文件。

setenv PATH /usr/local/jdk1.5.0_20/bin:$PATH
setenv JAVA_HOME /usr/local/jdk1.5.0_20

另外,如果你使用像Borland的JBuilder,Eclipse的IntelliJ IDEA的,或Sun ONE Studio集成開發環境(IDE),編譯並運行一個簡單的程序,應該讓IDE知道你在哪裡安裝Java。

設置Web服務器:Tomcat

許多的Web服務器支持Servlet是可以在市場上。有些Web服務器是可自由下載和Tomcat是其中之一。

Apache Tomcat是一個開放源代碼的Java Servlet和JavaServer Pages技術的軟件實現,可以作為一個獨立的服務器進行測試的Servlet,並可以集成到Apache Web服務器。下麵是在你的機器上安裝TOMCAT的步驟:

  • 下載最新版本的Tomcat http://tomcat.apache.org/.

  • 一旦你下載安裝,解壓縮的二進製分發到一個方便的位置。例如,在C:\apache-tomcat-5.5.29在Windows上,或/usr/local/apache-tomcat-5.5.29在Linux/ Unix和創建CATALINA_HOME環境變量指向這些安裝的位置。

Tomcat可以開始通過Windows機器上執行下麵的命令:

 $CATALINA_HOME\bin\startup.bat
 
 or
 
 C:\apache-tomcat-5.5.29\bin\startup.bat

Tomcat可以啟動UNIX(Solaris和Linux等)的機器上執行下麵的命令:

$CATALINA_HOME/bin/startup.sh
or
/usr/local/apache-tomcat-5.5.29/bin/startup.sh

啟動後,默認包含在Tomcat中的Web應用程序將可通過訪問輸入http://localhost:8080/。如果一切順利,那麼它應該顯示以下結果:

有關配置和運行Tomcat的進一步信息包含在文檔可以在這裡找到,以及在Tomcat Web站點:http://tomcat.apache.org
停止Tomcat既可以通過Windows機器上執行下麵的命令:


C:\apache-tomcat-5.5.29\bin\shutdown

Tomcat在Unix(Solaris和Linux等)機器停止可以執行下麵的命

/usr/local/apache-tomcat-5.5.29/bin/shutdown.sh

設置CLASSPATH

由於servlet是不屬於的Java平台標準版,必須確定Servlet類的編譯器。
如果運行的是Windows,需要在C:\autoexec.bat文件中添加以下行。


set CATALINA=C:\apache-tomcat-5.5.29
set CLASSPATH=%CATALINA%\common\lib\servlet-api.jar;%CLASSPATH%

另外,在Windows NT/2000/XP中,您也可以右鍵單擊“我的電腦”,選擇“屬性”,再“高級”,再選“環境變量”。然後將更新CLASSPATH的值,然後按“確定”按鈕。

在Unix(Solaris和Linux等),如果使用的是C shell,你把下麵的幾行到.cshrc文件。

setenv CATALINA=/usr/local/apache-tomcat-5.5.29
setenv CLASSPATH $CATALINA/common/lib/servlet-api.jar:$CLASSPATH

注:假設你的開發目錄是C:\ServletDevel(Windows)或/usr/ServletDevel(UNIX),那麼你就需要在CLASSPATH中添加這些目錄以及類似的方式,類似已經在上麵添加一樣

簡單Hello World示例代碼:

下麵是示例的源代碼結構的一個servlet的例子: Hello World:

// Import required java libraries
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
 
// Extend HttpServlet class
public class HelloWorld extends HttpServlet {
 
  private String message;
 
  public void init() throws ServletException
  {
      // Do required initialization
      message = "Hello World";
  }
 
  public void doGet(HttpServletRequest request,
                    HttpServletResponse response)
            throws ServletException, IOException
  {
      // Set response content type
      response.setContentType("text/html");
 
      // Actual logic goes here.
      PrintWriter out = response.getWriter();
      out.println("<h1>" + message + "</h1>");
  }
  
  public void destroy()
  {
      // do nothing.
  }
}

編譯一個Servlet:

讓我們在上麵的代碼中,編寫HelloWorld.java文件,把這個文件放在C:\ServletDevel(窗口)或/usr/ServletDevel(UNIX),那麼你將需要添加這些目錄在CLASSPATH中。
假設你的環境是正確,進入ServletDevel目錄和編譯HelloWorld.java中如下設置:

$ javac HelloWorld.java

如果servlet依賴於任何其他庫,你必須在你的CLASSPATH中包括JAR文件以及。我的servlet-api.jar隻包括JAR文件,因為這裡冇有使用任何其他庫中的Hello World程序。

此命令行使用內置的javac編譯器附帶的Sun Microsystems Java軟件開發工具包(JDK)。為使此命令正常工作,必須包括您所使用的Java SDK的位置到PATH環境變量。

如果一切順利,上麵編譯生成HelloWorld.class的文件在同一目錄下。下一節將解釋如何將部署在生產一個編譯Servlet。

Servlet 部署:

默認情況下,一個servlet的應用程序位於路徑<Tomcat-installation-directory>/webapps /ROOT目錄和類文件在<Tomcat-installation-directory>/webapps/ROOT/WEB-INF/classes中。

如果有一個完全合格的類名稱com.myorg.MyServlet,那麼這個servlet類必須位於WEB-INF/classes/com/myorg/MyServlet.class中。

現在,讓我們HelloWorld.class複製到<Tomcat-installation-directory>/webapps/ROOT/WEB-INF/classes中,並在web.xml文件中創建以下條目在<Tomcat-installation-directory>/webapps/ROOT/WEB-INF/

    <servlet>
        <servlet-name>HelloWorld</servlet-name>
        <servlet-class>HelloWorld</servlet-class>
    </servlet>
 
    <servlet-mapping>
        <servlet-name>HelloWorld</servlet-name>
        <url-pattern>/HelloWorld</url-pattern>
    </servlet-mapping>

上麵的條目要創建內部<web-app>...</ web應用程序>標簽在web.xml文件中。有可能是在此表中的各個條目已經可以,但不要在意。

幾乎已經完成了,現在讓我們使用<Tomcat-installation-directory>\BIN\的startup.bat(在Windows上)或<Tomcat-installation-directory>/BIN/startup.sh(啟動tomcat服務器上的Linux / Solaris等),最後在瀏覽器的地址框中輸入http://localhost:8080/HelloWorld。如果一切順利,你會得到下麵的結果:


要詳細的servlet,可以通過完全教學: Java Servlets.