1. 程式人生 > >Tomcat學習之二:tomcat安裝、配置及目錄檔案說明

Tomcat學習之二:tomcat安裝、配置及目錄檔案說明

一、下載JDK和Tomcat

二、安裝JDK

        點選JDK應用程式預設安裝即可,記下JDK的安裝目錄(例如:C:\Program Files\Java\jdk1.7.0_45)。

三、配置JDK和Tomcat

        1. 配置JDK

        JDK安裝完成後,需配置環境變數,在計算機->屬性->高階系統設定->環境變數->系統變數中新建兩個環境變數:JAVA_HOME和CLASSPATH。JAVA_HOME中的變數值填JDK的安裝目錄,依次確定,如下圖:


        CLASSPATH中的變數值填.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; (.;一定不能少,因為它代表當前路徑) ,依次確定,如下圖:


        然後在系統變數中找到Path,編輯它,在Path後面加上%JAVA_HOME%\bin(注意:與其他環境變數以”;”間隔)
測試JDK配置是否成功,win熱鍵+R開啟執行視窗輸入CMD,在命令列分別輸入java、javac和java -version,若顯示以下資訊,說明JDK配置成功




        2.  配置Tomcat(如:apache-tomcat-6.0.39)

        下載apache-tomcat-6.0.39後解壓,並重新命名為tomcat,放到一個目錄下(如:C:\Program Files\tomcat)。在計算機->屬性->高階系統設定->環境變數->系統變數中新建環境變數TOMCAT_HOME,其變數值填tomcat所在目錄,依次確定,如下圖:


        然後修改系統變數中的CLASSPATH,把tomat安裝目錄下lib裡的servlet-api.jar追加到CLASSPATH中去,在變數值後新增%TOMCAT_HOME%\lib\servlet-api.jar即可(注意:與其他環境變數以”;”間隔),依次確定,如下圖:


        然後在C:\Program Files\tomcat\bin中找到startup.bat,雙擊啟動tomcat,然後在瀏覽器中輸入,若出現帶小貓的視窗即配置tomcat成功,如圖:


        我們看到tomcat目錄/bin資料夾裡有個tomcat6w.exe,顧名思義就是tomcat以window方式顯示控制檯。第1次點選開啟它時候,可能會提示:tomcat指定的服務未安裝,此時我們可以這樣解決它。

        開啟命令列提示符視窗-> 進入Tomcat安裝目錄-> 進入bin目錄下-> 輸入:service.batinstall 即可,如圖操作,tomcat目錄按自己電腦上的來即可


        這樣就可以讓tomcat以window方式顯示控制檯。點選tomcat6w.exe,會顯示如圖:


        點選start啟動tomcat服務,如果startuptype選擇AUTOMATIC,就是隨開機啟動啦,這樣就不需要每次都手動開啟啦。

四、建立自己的JSP APP目錄

        1. 到Tomcat的安裝目錄的webapps目錄,可以看到ROOT,examples, tomcat-docs之類Tomcat自帶的一些目錄; 

        2. 在webapps目錄下新建一個目錄,起名叫myapp; 

        3. myapp下新建一個目錄WEB-INF,注意,目錄名稱是區分大小寫的; 

        4. WEB-INF下新建一個檔案web.xml,內容如下:       

<?xml version="1.0" encoding="ISO-8859-1"?>

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
   version="2.5">

  <display-name>My Web Application</display-name>
  <description>A application for test</description>
  <welcome-file-list>
    <welcome-file>login.jsp</welcome-file>
  </welcome-file-list>
</web-app>

        5. 在myapp下新建一個測試的jsp頁面,檔名為index.jsp,檔案內容如下:

<html><body><center> 
Now time is: <%=new java.util.Date()%> 
</center></body></html>

        6. 重啟Tomcat 

        7. 開啟瀏覽器,輸入http://localhost:8080/myapp/index.jsp 看到當前時間的話說明就成功了。如下圖:


五、 Tomcat目錄結構
        1. 一級目錄
        bin ——Tomcat執行指令碼目錄
        conf ——Tomcat配置檔案
        lib ——Tomcat執行需要的庫檔案(JARS)
        logs ——Tomcat執行時的LOG檔案
        temp ——Tomcat臨時檔案存放目錄
        webapps ——Tomcat的主要Web釋出目錄(存放我們自己的JSP,SERVLET,類)
        work ——Tomcat的工作目錄,Tomcat將翻譯JSP檔案到的Java檔案和class檔案放在這裡。
        2. 二級目錄(僅列出一級目錄下幾個重要的檔案)
      (1) bin目錄下的檔案
        catalina.sh 用於啟動和關閉tomcat伺服器
        configtest.sh 用於檢查配置檔案
        startup.sh 啟動Tomcat指令碼
        shutdown.sh 關閉Tomcat指令碼
       (2) conf目錄下的檔案
        server.xml Tomcat 的全域性配置檔案
        web.xml 為不同的Tomcat配置的web應用設定預設值的檔案
        tomcat-users.xml Tomcat使用者認證的配置檔案
       (3) lib目錄下的檔案
        包含被Tomcat使用的各種各樣的jar檔案。
       (4) logs目錄下的檔案
        localhost_access_log.2013-09-18.txt 訪問日誌
        localhost.2013-09-18.log 錯誤和其它日誌
        manager.2013-09-18.log 管理日誌
        catalina.2013-09-18.log Tomcat啟動或關閉日誌檔案
       (5) webapps目錄下的檔案
        含Web應用的程式(JSP、Servlet和JavaBean等)
       (6) work目錄下的檔案
        由Tomcat自動生成,這是Tomcat放置它執行期間的中間(intermediate)檔案(諸如編譯的JSP檔案)地方。 如果當Tomcat執行時,你刪除了這個目錄那麼將不能夠執行包含JSP          的頁面。
        3. 三級目錄(只針對二級目錄webapps下的目錄或檔案)
       二級目錄webapps,主要存放Web應用程式。Tomcat的Web應用程式應該由如下目錄組成:
       (1).頁面內容等檔案的存放位置:*.html, *.jsp等可以有許多目錄層次,由使用者的網站結構而定,實現的功能應該是網站的介面,也就是使用者主要的可見部分。除了HTML檔案、         JSP檔案外,還有js(JavaScript)檔案和css(樣式表)檔案以及其他多媒體檔案等。
       (2).Web-INF/web.xml 這是一個Web應用程式的描述檔案。這個檔案是一個XML檔案,描述了Servlet和這個Web應用程式的其他元件資訊,此外還包括一些初始化資訊和安全           約束等等。
       (3).Web-INF/classes/ 這個目錄及其下的子目錄應該包括這個Web應用程式的所有JavaBean及Servlet等編譯好的Java類檔案(*.class)檔案,以及沒有被壓縮打入JAR包的其         他class檔案和相關資源。注意,在這個目錄下的Java類應該按照其所屬的包層次組織目錄(即如果該*.class檔案具有包的定義,則該*.class檔案應該放在.\WEB-                          INF\classes\包名下)。
       (4).通常Web-INF/classes/ 這個目錄下的類檔案也可以打包成JAR檔案,並可以放到WEB-INF下的lib目錄下。如將 classes目錄下的各個*.class檔案打包成WebMis.jar檔案           (jar cvf WebMis.jar *.*)
       說明:
        • WEB-INF目錄中包含應用軟體所使用的資源,但是WEB-INF卻不在公共文件根目錄之中。在這個目錄中所包含的檔案都不能被客戶機所訪問。
        • 類目錄中(在WEB-INF下)包含執行Web應用程式時所需的Servlets,Beans等類。
        • lib目錄(在WEB-INF下)包含有Java archive files (JARs),例如標籤庫或者Servlets,Beans等類的*.jar檔案。
        • 如果一個類出現在JAR檔案中同時也出現在類的目錄中,類載入器會載入位於類目錄中的那一個。
        (5). common/lib/ 這個目錄下包含了所有壓縮到JAR檔案中的類檔案和相關檔案。比如:第三方提供的Java庫檔案、JDBC驅動程式等。
        • 其中msbase.jar、mssqlserver.jar、msutil.jar檔案為SqlServer2000的JDBC驅動程式
        • 其中servlet-api.jar和jsp-api.jar為Servlet和JSP的API所在的包
六、 Tomcat配置檔案
        Tomcat的配置檔案預設存放在$CATALINA_HOME/conf目錄中,主要有以下幾個:
        • server.xml: Tomcat的主配置檔案,包含Service, Connector, Engine, Realm, Valve, Hosts主元件的相關配置資訊;
        • web.xml:遵循Servlet規範標準的配置檔案,用於配置servlet,併為所有的Web應用程式提供包括MIME對映等預設配置資訊;
        • tomcat-user.xml:Realm認證時用到的相關角色、使用者和密碼等資訊;Tomcat自帶的manager預設情況下會用到此檔案;在Tomcat中新增/刪除使用者,為使用者指定角色等將         通過編輯此檔案實現;
        • catalina.policy:Java相關的安全策略配置檔案,在系統資源級別上提供訪問控制的能力;
        • catalina.properties:Tomcat內部package的定義及訪問相關的控制,也包括對通過類裝載器裝載的內容的控制;Tomcat在啟動時會事先讀取此檔案的相關設定;
        • logging.properties: Tomcat通過自己內部實現的JAVA日誌記錄器來記錄操作相關的日誌,此檔案即為日誌記錄器相關的配置資訊,可以用來定義日誌記錄的元件級別以及日         志文件的存在位置等;
        • context.xml:所有host的預設配置資訊;
        下面對幾個常用的配置檔案進行詳解。
        1. server.xml
        Tomcat以面向物件的方式執行,它可以在執行時動態載入配置檔案中定義的物件結構,這有點類似於apache的httpd模組的呼叫方式。server.xml中定義的每個主元素都會被           建立為物件,並以某特定的層次結構將這些物件組織在一起。下面是一個簡圖說明了各元件之間的關係。
        
        server.xml檔案中可定義的元素非常多,包括Server, Service, Connector, Engine, Cluster, Host, Alias, Context, Realm, Valve, Manager, Listener, Resources, Resource,               ResourceEnvRef, ResourceLink, WatchedResource, GlobalNameingResources, Store, Transaction, Channel, Membership, Transport, Member, ClusterListener等。
        下面簡單介紹幾個常用元件:
       (1) .Connector元件
        Tomcat應該考慮工作情形併為相應情形下的請求分別定義好需要的聯結器才能正確接收來自於客戶端的請求。一個引擎可以有一個或多個聯結器,以適應多種請求方式。
        定義聯結器可以使用多種屬性,有些屬性也只適用於某特定的聯結器型別。一般說來,常見於server.xml中的聯結器型別通常有4種:
            • HTTP聯結器
            • SSL聯結器
            • AJP 1.3聯結器
            • proxy聯結器
        如server.xml中定義的HTTP聯結器:
            <Connector port="8080" protocol="HTTP/1.1" 
                   connectionTimeout="20000" 
                   redirectPort="8443" URIEncoding="UTF-8" />
       (2) .Context元件
         Context在某些意義上類似於apache中的路徑別名,一個Context定義用於標識tomcat例項中的一個Web應用程式;如下面的定義:
<!-- Tomcat Root Context -->
<Context path="" docBase="/web/webapps"/>
<!-- buzzin webapp -->
<Context path="/bbs"
docBase="/web/threads/bbs"
reloadable="true">
</Context>
<!-- chat server -->
<Context path="/chat" docBase="/web/chat"/>
<!-- darian web -->
<Context path="/darian" docBase="darian"/>
        在Tomcat中,每一個context定義也可以使用一個單獨的XML檔案進行,其檔案的目錄為$CATALINA_HOME/conf/<engine name>/<host name>。可以用於Context中的XML           元素有Loader,Manager,Realm,Resources和WatchedResource。
        常用的屬性定義有:
        • docBase:相應的Web應用程式的存放位置;也可以使用相對路徑,起始路徑為此Context所屬Host中appBase定義的路徑;切記,docBase的路徑名不能與相應的Host中              appBase中定義的路徑名有包含關係,比如,如果appBase為deploy,而docBase絕不能為deploy-bbs類的名字;
        • path:相對於Web伺服器根路徑而言的URI;如果為空“”,則表示為此webapp的根路徑;如果context定義在一個單獨的xml檔案中,此屬性不需要定義;
        • reloadable:是否允許重新載入此context相關的Web應用程式的類;預設為false;
        2. web.xml
        web.xml基於Java Servlet規範,可被用於每一個Java servlet容器,通常有兩個存放位置,$CATALINA_BASE/conf和每個Web應用程式(通常是WEB-INF/web.xml)。                 Tomcat在deploy一個應用程式時(包括重啟或重新載入),它首先讀取conf/web.xml,而後讀取WEB-INF/web.xml。