歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Jetty 9嵌入式開發

官方網址:http://www.eclipse.org/jetty/

下載地址:http://download.eclipse.org/jetty/stable-9/dist/

文檔網址:http://www.eclipse.org/jetty/documentation/

當前Jetty網址上推薦使用的穩定版本:Jetty9.0。

使用Jetty作為嵌入式服務器 http://www.linuxidc.com/Linux/2013-07/86983.htm

Jetty 源碼分析 http://www.linuxidc.com/Linux/2013-10/90986.htm

Jetty安裝學習並展示 http://www.linuxidc.com/Linux/2014-05/101993.htm

Jetty在Eclipse中的安裝 http://www.linuxidc.com/Linux/2013-10/90991.htm

Linux(RedHat 5.8)下 安裝Jetty 部署 使用  http://www.linuxidc.com/Linux/2014-10/108342.htm

介紹

      Jetty9內容位於http://www.eclipse.org/jetty/documentation。

      直接鏈接:

http://www.eclipse.org/jetty/documentation/current/embedding-jetty.html

      Jetty有一個標語,“不要部署你的應用在Jetty上,部署Jetty在你的應用中”。這意味著可選擇使用Jetty捆綁你的應用作為一個標准WAR進行部署。Jetty設計成一個軟件組件,可以實例化並且使用在Java程序中,例如:如何POJO。但是另外一種方法,以嵌入式模式運行Jetty,這意味著把HTTP模塊放入到你的應用中,而不是把你的應用放入到HTTP服務中。

      本教程引導你逐步從最簡單的Jetty服務實例到使用標准部署描述運行多個Web應用。大部分示例的源代碼是標准Jetty項目的一部分。

      在學習該教程之前,完成一個HelloWorld教程是值得的。該教程可以在“嵌入式Jetty網絡研討會記錄”中找到。

      Jetty版本:本教程的代碼來自於Jetty7,但是也應該在Jetty 8中可以使用。對於最新的穩定版本,參考最新發行版的鏈接代碼。可能與本教程中給出的代碼例子有稍微的不同。

概述

      為了嵌入Jetty服務,通常執行下面的步驟:

      1)創建一個服務

      2)添加和配置連接器

      3)添加和配置處理器

      4)添加和配置Servlet、Webapp到處理器

      5)啟動服務

      6)等待(join服務防止主線程退出)

創建一個服務

      下面的代碼來自於SimplestServer.jar,實例化和運行一個最簡單的Jetty服務

http://download.eclipse.org/jetty/stable-9/xref/org/eclipse/jetty/embedded/SimplestServer.html

public class SimplestServer

{

   public static void main(String[] args) throws Exception

    {

       Server server = new Server(8080);

       server.start();

       server.join();

    }

}

      在端口8080上運行一個HTTP服務。這不是非常有用的服務,因為它不處理,對於每個請求只是返回一個404錯誤。

編寫處理器

      為了生成請求的響應,Jetty要求在服務上設置一個Handler。一個處理器可能:

1)  檢查和修改HTTP請求

2)生成完整的HTTP詳情

3)調用其他的處理器(參見HandlerWrapper)

4)選擇一個或者多個處理器調用(參考HandlerCollection)

http://download.eclipse.org/jetty/stable-9/xref/org/eclipse/jetty/server/handler/HandlerWrapper.html

Hello world處理器:

下面代碼基於HelloHandler.java,顯示一個簡單的Helloworld處理器。

public classHelloHandler extends AbstractHandler

{

    public void handle(String target,RequestbaseRequest,HttpServletRequest request,HttpServletResponse response)

        throws IOException, ServletException

    {

        response.setContentType("text/html;charset=utf-8");

       response.setStatus(HttpServletResponse.SC_OK);

        baseRequest.setHandled(true);

       response.getWriter().println("<h1>HelloWorld</h1>");

    }

}

傳遞給handle方法的參數包括:

1)  target - 請求的目標,它可以是一個URI或者命名分發器的名稱

2) baseRequest – Jetty可變請求對象,它總是解包的

3)  request - 不可變的請求對象,它可能已經被封裝

4) response - 響應,它可能已經被封裝

處理器設置請求的狀態,內容類型,在使用writer生成請求體之前標注請求已經處理(後續就不再處理)。

下面的代碼來自於OneHandler.java,顯示Jetty服務如何使用該處理器。

public staticvoid main(String[] args) throws Exception

{

    Server server = new Server(8080);

    server.setHandler(new HelloHandler());

 

    server.start();

    server.join();

}

現在你知道基於Jetty編寫一個HTTP服務所需要了解的所有東西。然而,復雜的請求處理通常使用多處理器構建。我們在後面章節中看看它是如何組合處理器的。你能查看Jetty的org.eclipse.jetty.server.handler包中有那些可用處理器。

更多詳情見請繼續閱讀下一頁的精彩內容: http://www.linuxidc.com/Linux/2014-11/109584p2.htm

Copyright © Linux教程網 All Rights Reserved