Java Web 學習筆記之八:嵌入式web伺服器Jetty的基本使用
阿新 • • 發佈:2018-12-27
Jetty 是一個開源的servlet容器,具有易用性,可擴充套件性,易嵌入性等特點。通過少量的程式碼,開發者就可以在程式中以嵌入的方式執行一個web伺服器。
下面介紹一些Jetty使用的方式:
方式一(直接在程式碼中定義web應用的上下文):
(1)新建maven工程,pom下的依賴如下圖:
(2)編寫自定義的一個Servlet類,用來測試,如下圖:
(3)編寫程式入口類main方法,如下圖:
(4)專案目錄結構如下圖:
以上三個步驟之後就可以執行main方法啟動程式了,可以看到控制檯輸出:
說明Jetty伺服器啟動成功了。
下面測試一下剛才編寫的BaseServlet,它的URL在main方法的配置中定義為”/base”,可以看到結果如下:
說明Jetty成功將請求轉發給了自定義的servlet。
方式一的main方法程式碼如下:
public class Main {
private static String host;
private static String port;
public static void main(String[] args) throws Exception {
host = "127.0.0.1";
port = "9681";
InetSocketAddress address = new InetSocketAddress(host, Integer.parseInt(port));
// 新建web伺服器
Server server = new Server(address);
// 新增自定義的Servlet
ServletContextHandler handler = new ServletContextHandler();
handler.addServlet(BaseServlet.class, "/base");
server.setHandler(handler);
// 啟動web伺服器
server.start();
}
}
方式二(利用web.xml配置檔案定義web應用的上下文):
(1)新建maven工程,pom的依賴同方式一
(2)編寫自定義的BaseServlet,定義方式同方式一
(3)編寫web.xml配置檔案(WebContent/WEB-INFO/),如下圖:
(4)編寫程式入口類main方法,如下圖:
(5)專案目錄結構如下圖:
執行main方法,並開啟瀏覽器請求BaseServlet的URL,結果如下:
說明Jetty容器成功啟動並將請求轉發給了自定義的servlet。
方式二的main方法程式碼如下:
public class Main {
private static String host;
private static String port;
public static void main(String[] args) throws Exception {
host = "127.0.0.1";
port = "9681";
InetSocketAddress address = new InetSocketAddress(host, Integer.parseInt(port));
// 新建web伺服器
Server server = new Server(address);
// 配置web應用上下文
WebAppContext webAppContext = new WebAppContext();
webAppContext.setContextPath("/");
// 設定配置檔案掃描路徑
File resDir = new File("./WebContent");
webAppContext.setResourceBase(resDir.getCanonicalPath());
webAppContext.setConfigurationDiscovered(true);
webAppContext.setParentLoaderPriority(true);
server.setHandler(webAppContext);
// 啟動web伺服器
server.start();
}
}
工程程式碼連線:
