第四章 Servlet 實例

關於本篇文章

瞭解一些 servlet 概念,本編文章只進行一些文章格式修改,文章內使用的圖片均來自 Runoob 網站

致謝

感謝 Runoob 提供的相關資料,官方資料地址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 應用程序位於路徑 /webapps/ROOT 下,且類文件放在 /webapps/ROOT/WEB-INF/classes 中。

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

現在,讓我們把 HelloWorld.class 複製到 /webapps/ROOT/WEB-INF/classes 中,並在位於 /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 文件中的 … 標籤內。在該文件中可能已經有各種可用的條目,但不要在意。

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

Servlet 實例

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章