1. 程式人生 > >Java Web 學習筆記之八:嵌入式web伺服器Jetty的基本使用

Java Web 學習筆記之八:嵌入式web伺服器Jetty的基本使用

Jetty 是一個開源的servlet容器,具有易用性,可擴充套件性,易嵌入性等特點。通過少量的程式碼,開發者就可以在程式中以嵌入的方式執行一個web伺服器。

下面介紹一些Jetty使用的方式:

方式一(直接在程式碼中定義web應用的上下文):

1)新建maven工程,pom下的依賴如下圖:


(2)編寫自定義的一個Servlet類,用來測試,如下圖:


(3)編寫程式入口類main方法,如下圖:


(4)專案目錄結構如下圖:


以上三個步驟之後就可以執行main方法啟動程式了,可以看到控制檯輸出:


說明Jetty伺服器啟動成功了。

下面測試一下剛才編寫的BaseServlet,它的

URLmain方法的配置中定義為”/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方法,並開啟瀏覽器請求BaseServletURL,結果如下:



說明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();
	}
}

工程程式碼連線: