Java Web 學習筆記之八:嵌入式web伺服器Jetty的基本使用
阿新 • • 發佈:2018-12-27
Jetty 是一個開源的servlet容器,具有易用性,可擴充套件性,易嵌入性等特點。通過少量的程式碼,開發者就可以在程式中以嵌入的方式執行一個web伺服器。
下面介紹一些Jetty使用的方式:
方式一(直接在程式碼中定義web應用的上下文):
(1)新建maven工程,pom下的依賴如下圖:
(2)編寫自定義的一個Servlet類,用來測試,如下圖:
(3)編寫程式入口類main方法,如下圖:
(4)專案目錄結構如下圖:
以上三個步驟之後就可以執行main方法啟動程式了,可以看到控制檯輸出:
說明Jetty伺服器啟動成功了。
下面測試一下剛才編寫的BaseServlet,它的
說明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(); } }
工程程式碼連線: