在 Java API 開發中,使用 Web 伺服器是不可或缺的一步。而 Jetty 6 是一個輕量級、可嵌入式的 Web 伺服器,能夠提供高效率的 HTTP 服務。本文將詳細介紹如何在 Java API 開發中使用 Jetty6 進行 Web 伺服器處理。
一、環境建置
要使用 Jetty 6,首先需要下載 Jetty 6 的安裝包,並解壓縮到任何目錄。然後,需要將 Jetty 6 的 libraries 加入到專案的 Classpath 中。這可以透過 Eclipse 編輯器完成,右鍵點選項目,選擇 Properties > Java Build Path > Libraries,然後點擊 Add External JARs... 按鈕,選取 Jetty 6 的 libraries,完成新增。
二、建立Jetty 6 Servlet 專案
為了示範如何在Java API 開發中使用Jetty6 進行Web 伺服器處理,我們將建立一個簡單的HttpServlet,並將其部署在Jetty 6 中。具體步驟如下:
- 建立新專案:在 Eclipse 中建立一個新的 Java Web 專案。選擇 File > New > Project...,選擇 Web > Dynamic Web Project,填寫專案基本信息,點擊 Finish 完成建立。
- 新增 Servlet 依賴:右鍵
- 寫 Servlet 類別:在 src 目錄下新建一個 Servlet 類,繼承 HttpServlet,並實作 doGet 方法。具體程式碼如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class HelloServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType( "text/html;charset=utf-8" );
response.getWriter().println( "<h1>Hello Jetty6!</h1>" );
}
}
|
登入後複製
- 設定 Servlet:在 /WEB-INF 目錄下新建一個 web.xml 文件,並新增 Servlet 設定資訊。具體程式碼如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?xml version= "1.0" encoding= "UTF-8" ?>
<web-app xmlns= "http://java.sun.com/xml/ns/javaee"
xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http:
http:
version= "2.5" >
<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet- class >HelloServlet</servlet- class >
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>
|
登入後複製
- 運行項目:右鍵點選項目,選擇Run As > Run on Server,在彈出的對話方塊中選擇Jetty 6,點選Next,然後點選Finish,等待Jetty 6 啟動完成。
- 測試項目:在瀏覽器中造訪 http://localhost:8080/專案名稱/hello 即可看到 HelloWorld 頁面。
三、Jetty 6 設定詳解
Jetty 6 的設定非常靈活,可以透過 XML 檔案和 Java 程式碼進行設定。下面我們將介紹 Jetty 6 的一些常見設定項。
- 啟動連接埠
透過設定 start.ini 檔案可以指定 Jetty 6 的啟動端口,預設為 8080 連接埠。修改 start.ini 檔案中的 jetty.port 變數即可修改連接埠號碼。例如:
1 2 3 4 | -- exec
- exec ./bin/jetty.sh $ARGS
jetty.port=80
|
登入後複製
- Servlet 設定
Jetty 6 的 Servlet 設定可以透過 web.xml 檔案進行設定。在 /WEB-INF 目錄下新增 web.xml 文件,然後新增 servlet 和 servlet-mapping 設定項即可。例如:
1 2 3 4 5 6 7 8 | <servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet- class >HelloServlet</servlet- class >
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
|
登入後複製
- HTTPS 設定
Jetty 6 支援 HTTPS 協議,可以透過設定 jetty.xml 檔案啟用 HTTPS。首先,在Jetty 6 的libraries 中加入jetty-sslengine.jar,然後在/etc 目錄下建立jetty.xml 文件,加入以下內容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <Configure id= "Server" class = "org.eclipse.jetty.server.Server" >
<Call name= "addConnector" >
<Arg>
<New class = "org.eclipse.jetty.server.ssl.SslSelectChannelConnector" >
<Arg><Ref id= "Server" /></Arg>
<Set name= "port" >8443</Set>
<Set name= "maxIdleTime" >30000</Set>
<Set name= "keystore" ><SystemProperty name= "jetty.home" default = "." />/etc/keystore</Set>
<Set name= "password" >OBF:1vv71ue910871we0v8123</Set>
<Set name= "keyPassword" >OBF:1vv71ue910871we0v8123</Set>
<Set name= "truststore" ><SystemProperty name= "jetty.home" default = "." />/etc/truststore</Set>
<Set name= "trustPassword" >OBF:1vv71ue910871we0v8123</Set>
</New>
</Arg>
</Call>
</Configure>
|
登入後複製
在上面的設定中,443 埠用於處理HTTPS請求,keystore、password、truststore 和trustPassword 用於憑證和金鑰的管理。
- 日誌配置
Jetty 6 的日誌配置可以透過在 start.ini 檔案中新增 --log 參數進行設定。例如:
1 2 3 4 5 6 7 8 | -- exec
- exec ./bin/jetty.sh $ARGS
jetty.port=80
--log logs/yyyy_mm_dd.request.log
--log logs/yyyy_mm_dd.info.log
--log logs/yyyy_mm_dd.debug.log
|
登入後複製
在上面的設定中,logs/yyyy_mm_dd.request.log、logs/yyyy_mm_dd.info.log 和logs/yyyy_mm_dd.debug.log 用於分別記錄請求日誌、資訊日誌和偵錯日誌。
總結
本文詳細介紹了在 Java API 開發中如何使用 Jetty 6 進行 Web 伺服器處理。透過本文的學習,我們能夠在 Eclipse 中建立 Jetty 6 Servlet 項目,掌握 Jetty 6 的常見配置項,輕鬆開發高效的 Web 服務。
以上是Java API 開發中使用 Jetty6 進行 Web 伺服器處理的詳細內容。更多資訊請關注PHP中文網其他相關文章!