歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 出色的Servlet應用服務器Jetty介紹

出色的Servlet應用服務器Jetty介紹

日期:2017/2/27 16:05:59   编辑:Linux教程
Jetty是Java領域另一個出色的Web服務器,它同樣也是開源的。與tomcat不同的是它可作為一個嵌入式服務器。也就是說,如果我們在應用中加入jetty的核心jar文件,應用即可對外提供http服務。它同時也是平台無關的java web服務器,既可以在Windos平台上運行,也可以在Linux平台上運行。

大家可以登錄http://jetty.codehaus.org/jetty/站點下載Jetty的最新版本。下載的zip文件也是與平台無關的壓縮包,不管是windows還是Linux都可使用。

將下載的安裝zip包,解壓縮到任意的路徑下。運行Jetty需要使用如下命令:

cd D:/jetty
D:
java -jar start.jar

建議將上面的命令寫成腳本,在windows下可寫成批處理命令,在linux下可寫成shell腳本。每次運行執行該文件就可以了。

運行成功後,啟動浏覽器,然後輸入http://localhost:8080/回車,看看是否成功。如果不成功首先要保證端口8080是否被占用,真的被占用那就配置一下Jetty的端口,下面會介紹的。

1.Jetty的基本配置

主要介紹Jetty的端口設置,以及如何部署Web應用,Jetty是一個嵌入式的Http服務器,因此配置方式還是與tomcat有一些差異的:

Jetty的配置文件都會在etc的目錄下,熟悉linux的目錄的人應該很眼熟,呵呵。該目錄下有如下幾類配置文件:
1.jetty.xml:該文件是Jetty的默認配置文件,Jetty的端口號也是在這個文件裡設置的。
2.jetty-xxx.xml:該文件是為了給Jetty增加擴展應用所用的配置文件。
3.webdefault.xml:該文件是Web應用的默認配置文件,用於控制Jetty容器裡所有Web應用的通用屬性,該文件不可以修改。
Jetty服務器提供HTTP服務的主類是org.mortbay.jetty.Server,所以etc路徑下的文件都需要為org.mortbay.jetty.Server配置屬性。如下所示:
<Configure id="Server" class="org.eclipse.jetty.server.Server">

 <!-- =========================================================== -->
    <!-- Set connectors                                              -->
    <!-- =========================================================== -->

    <Call name="addConnector">
      <Arg>
          <New class="org.eclipse.jetty.server.nio.SelectChannelConnector">
            <Set name="host"><Property name="jetty.host" /></Set>
            <Set name="port"><Property name="jetty.port" default="8080"/></Set>
            <Set name="maxIdleTime">300000</Set>
            <Set name="Acceptors">2</Set>
            <Set name="statsOn">false</Set>
            <Set name="confidentialPort">8443</Set>
	    <Set name="lowResourcesConnections">20000</Set>
	    <Set name="lowResourcesMaxIdleTime">5000</Set>
          </New>
      </Arg>
    </Call>


Jetty的配置文件非常巧妙,它通過配置文件來新建對象(New元素),調用對象的方法(Call元素),設置屬性(Set元素控制)。實際上,Jetty底層將會根據配置文件中的信息,使用反射來創建對象,設置屬性和調用方法。由此可見,如果我們需要在應用程序中嵌入Jetty服務器,只需要創建org.mortbay.jetty.Server對象,並調用一些列方法即可。

2.部署Web應用

Jetty同樣也有兩種方式部署Web應用:
1)自動部署:將Web應用復制到Jetty的webapps的路徑下,Jetty就會吧該Web應用自動部署到Jetty服務器中。
2)利用配置文件部署:新增配置文件來部署Web應用,這種方式無需將web應用放置到webapps路徑下。
自動部署就不多說了,利用配置文件部署,既是進入Contexts目錄,該目錄下的所有文件都會被系統自動加載,並且根據這些配置文件來部署應用。該路徑下默認有兩個文件: 1)javadoc.xml:負責部署java的API應用;
2)test.xml:負責部署jetty的實例應用。
復制test.xml文件,將文件名改為項目名稱。並對復制文件進行修改:
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Required minimal context configuration :                        -->
<!--  + contextPath                                                  -->
<!--  + war OR resourceBase                                          -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<Set name="contextPath">/</Set>
<Set name="war"><SystemProperty name="jetty.home" default="."/>/new</Set>


上面的兩行分別制定了Web應用的虛擬路徑和文檔路徑,增加了該配置文件以後,jetty啟動時將會自動把new路徑下的web應用部署在服務器中。如果要刪除該web應用就直接刪除該配置文件即可。

3.配置JNDI綁定

Jetty同樣可以整合DBCP,C3P0等數據源的實現,想外界提供容器管理的數據源。實際上,對外界提供容器管理的數據源,只是Jetty的JNDI的綁定功能之一。
Copyright © Linux教程網 All Rights Reserved