top
Loading...
Servlet 實例

Servlet 實例

Servlet 是服務 HTTP 請求併實現 javax.servlet.Servlet 接口的 Java 類。Web 應用程序開發人員通常編寫 Servlet 來擴展 javax.servlet.http.HttpServlet,併實現 Servlet 接口的抽象類專門用來處理 HTTP 請求。

Hello World 示例代碼

下面是 Servlet 輸出 Hello World 的示例源代碼:

// 導入必需的 java 庫
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
// 擴展 HttpServlet 類
public class HelloWorld extends HttpServlet {
 
  private String message;
  public void init() throws ServletException
  {
      // 執行必需的初始化
      message = "Hello World";
  }
  public void doGet(HttpServletRequest request,
                    HttpServletResponse response)
            throws ServletException, IOException
  {
      // 設置響應內容類型
      response.setContentType("text/html");
      // 實際的邏輯是在這里
      PrintWriter out = response.getWriter();
      out.println("<h1>" + message + "</h1>");
  }
  
  public void destroy()
  {
      // 什么也不做
  }
}

編譯 Servlet

讓我們把上面的代碼寫在 HelloWorld.java 文件中,把這個文件放在 C:\ServletDevel(在 Windows 上)或 /usr/ServletDevel(在 UNIX 上)中,您還需要把這些目錄添加到 CLASSPATH 中。

假設您的環境已經正確地設置,進入 ServletDevel 目錄,併編譯 HelloWorld.java,如下所示:

$ javac HelloWorld.java

如果 Servlet 依賴於任何其他庫,您必須在 CLASSPATH 中包含那些 JAR 文件。在這里,我只包含了 servlet-api.jar JAR 文件,因為我沒有在 Hello World 程序中使用任何其他庫。

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

如果一切順利,上面編譯會在同一目錄下生成 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 中,併在位於 <Tomcat-installation-directory>/webapps/ROOT/WEB-INF/ 的 web.xml 文件中創建以下條目:

<web-app>      
    <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.xml 文件中的 <web-app>...</web-app> 標籤內。在該文件中可能已經有各種可用的條目,但不要在意。

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

北斗有巢氏 有巢氏北斗