此部分提供編寫簡單 HTTP servlet 的過程,此過程輸出消息 Hello World。說明這些步驟的完整代碼示例 (HelloWorldServlet) 位於本部分末尾。有關使用各種 J2EE 和 Weblogic Server 服務,例如 servlet 中的 JDBC、RMI 和 JMS,將會在本文檔的後面部分進行論述。
導入相應的包和類,包括如下:
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
擴展 javax.servlet.http.HttpServlet。例如:
public class HelloWorldServlet extends HttpServlet{
實現 service() 方法。
servlet 的主要功能是從 Web 瀏覽器中接受 HTTP 請求,並返回 HTTP 響應。使用 servlet 的 service() 方法完成此項工作。服務方法包括用於創建輸出的響應對象和用於接收來自客戶端數據的請求對象。
其他 servlet 示例可能實現 doPost() 和/或 doGet() 方法。這些方法只答復 POST 或 GET 請求,如果希望從單個方法中處理所有的請求類型,則 servlet 可以簡單地實現 service() 方法。(但是如果選擇實現 service() 方法,則無法實現 doPost() 或 doGet() 方法,除非在開始使用 service() 方法時調用 super.service()。)HTTP servlet 規範描述用於處理其他請求類型的方法,但這些方法都統稱為服務方法。
所有的服務方法都采用相同的參數。HttpServletRequest 提供有關請求的信息,而 servlet 使用 HttpServletResponse 來答復 HTTP 客戶端。服務方法類似下列內容:
public void service(HttpServletRequest req,
HttpServletResponse res) throws IOException
{
設置如下內容類型:
res.setContentType("text/html");
獲取 java.io.PrintWriter 對象的引用以便用於輸出,如下所示:
PrintWriter out = res.getWriter();
如下例所示,使用 PrintWriter 對象的 println() 方法創建 HTML。
out.println("<html><head><title>Hello World!</title></head>");
out.println("<body><h1>Hello World!</h1></body></html>");
}
}
編譯 servlet,如下所示:
使用正確的類路徑和路徑設置來設置開發環境外殼。
從包含 servlet 的 Java 源代碼的目錄中,將 servlet 編譯到包含 servlet 的 Web 應用程序的 WEB-INF/classes 目錄。例如:
javac -d /myWebApplication/WEB-INF/classes myServlet.java
將 servlet 部署為 WebLogic Server 所承載 Web 應用程序的壹部分。
從瀏覽器中調用 servlet。
用於調用 servlet 的 URL 取決於: (a) 包含 servlet 的 Web 應用程序名和 (b) 在 Web 應用程序部署描述符中映射的 servlet 名。用於調用 servlet 的 URL 也可以包括請求參數。
通常 servlet 的 URL 如下所示:
http://host:port/webApplicationName/mappedServletName?parameter
URL 的組件定義如下:
host 是運行 WebLogic Server 的計算機名。
port 是上述計算機監聽 HTTP 請求所在的端口。
webApplicationName 是包含 servlet 的 Web 應用程序名。
parameters 是從瀏覽器發出且在 servlet 上可用的包含信息的壹個或多個名值對。
例如,要使用 Web 瀏覽器來調用部署於 examplesWebApp 中且從計算機上運行的 WebLogic Server 接受服務的 HelloWorldServlet (本文檔中介紹了此示例),請輸入下列 URL:
http://localhost:7001/examplesWebApp/HelloWorldServlet
URL 的 host:port 部分可以由映射到 WebLogic Server 的 DNS 名來替換。