1. 程式人生 > >web伺服器-Tomcat介紹

web伺服器-Tomcat介紹

把頁面放到web專案中,再把web專案放到web伺服器裡面,然後通過瀏覽器輸入對應的url地址,就能訪問到這個html頁面了
一、web伺服器 -  tomcat  一種伺服器軟體
        tomcat執行需要依賴本地安裝的JDK
            1.自己手動啟動tomcat伺服器
                必須安裝JDK,並且配置JAVA_HOME環境變數
                例如:
                JAVA_HOME=C:\Program Files\Java\jdk1.7.0_79
            2.把tomcat和Eclipse關聯起來,然後使用Eclipse來管理tomcat
        tomcat伺服器執行的時候,需要佔用一些埠號
            預設監聽的http協議的埠為8080,一般會把這個埠號修改為別的值,避免端口占用的錯誤 
            3.tomcat伺服器中的目錄結構
            bin目錄 存放執行tomcat需要的命令檔案(Unix和wondows的都有)
                windows中: 雙擊執行即可
                    啟動伺服器 startup.bat
                    關閉伺服器 shutdown.bat 
                Unix中:(需要注意檔案的許可權)
                    啟動伺服器 startup.sh
                    關閉伺服器 shutdown.sh             
            conf目錄 存放tomcat相關的配置檔案
                其中最重要的一個配置檔案就是server.xml ,比如: tomcat伺服器的埠號就是在這裡配置的             
            lib目錄     存放專案執行時需要的jar包
                這個目錄的jar包是公共的jar包,tomcat伺服器可以同時部署多個web專案,這個多個專案就可以共享這些jar包了           
            logs目錄 存放tomcat執行時的日誌檔案
                tomcat會把執行時的重要資訊記錄下來,比如tomcat中部署的web專案發生了嚴重錯誤             
            temp目錄 存放tomcat執行時產生的臨時檔案
                tomcat在執行期間,有時會產生一些臨時檔案,這些檔案預設放到這裡目錄下             
            webapps目錄 存放web專案的位置
                把web專案服務到tomcat伺服器中,其實就是把專案放到這個目錄下面
            work目錄 和jsp頁面相關的目錄
                jsp,tomcat的工作原理是當瀏覽器訪問某個jsp頁面時,tomcat會在work目錄裡把這個jsp頁面轉換成.
Java
檔案,比如將index.jsp轉換為index_jsp.java檔案,而後編譯為index_jsp.class檔案,最後tomcat容器通過ClassLoader類把這個index_jsp.class類裝載入記憶體,進行響應客戶端的工作。
二、web專案     
    web專案的目錄結構是固定的
        1.web專案的名字就是web專案的資料夾
            例如:新建一個web專案,名字為Web_Test
            對應的,就要建立一個資料夾,名字為Web_Test         
        2.Web_Test資料夾下面,必須要有一個固定的資料夾:WEB-INF         
        3.Web_Test資料夾下面,除了WEB-INF之外,其他的資料夾都可以隨意的建立,將來這些地方就可以存放web專案中的,html頁面、css樣式、js指令碼、各種專案用的圖片等資源(這些都叫web資源,通過瀏覽器訪問web專案,就是來訪問這個web資源)
        4.WEB-INF資料夾下面,有倆個固定的資料夾和一個固定的檔案
            資料夾:classes  lib
            檔案  :web.xml  
        5.classes lib web.xml的作用
            classes資料夾: web專案中要寫java程式碼,java程式碼還要編譯為class檔案,編譯好的class檔案就要放到這個資料夾中
            注意:放到tomcat伺服器中執行的web專案,不需要儲存.java檔案,只需要有class檔案就可以了 
            lib資料夾:這個web專案在執行的時候所需要的第三方jar包.這些jar包是專案自己使用的,每個web專案都有自己的lib目錄
            注意:專案中的lib目錄和tomcat中的lib的區別 
            web.xml檔案:這個是web專案的配置檔案,每個web專案都要有自己的配置檔案(web.xml),同時這個web.xml檔案內容是讓tomcat伺服器在啟動期間來自動讀取的
                tomcat能自動讀取web專案中的web.xml原因
                    1.web專案是在tomcat中部署的
                    2.web專案結構是固定的 
        6.web.xml檔案的內容
            在tomcat裡面的conf目錄中,有一個web.xml檔案的樣例 
        7.把web專案部署到tomcat伺服器中
            就是把web專案放到tomcat中的webapps裡面 
        8.啟動tomcat伺服器 
        9.訪問tomcat中指定專案裡面的資源
            http://ip:port/專案名/資源路徑             
           如: http://127.0.0.1:8989/Web_Test/test.html
          瀏覽器通過url地址,訪問web專案中的java程式碼
                    http://127.0.0.1:8989/Web_Test/HelloWorld
           訪問到
                    HelloWorld類中sayHello方法     

三、Java程式碼部分


    1.程式入口

        tomcat負責
        tomcat啟動的時候,會執行tomcat自己的相關程式碼,在它的這個程式碼中,會負責建立我們自己寫的類的物件,並且呼叫物件的方法
        所以程式的入口是在tomcat中的 
    2.物件
        由tomcat來建立,使用反射的方式呼叫我們寫的類裡面的無參構造器 
    3.方法呼叫
        tomcat只會呼叫指定名字的一個方法
            這個方法名字為:service  
    所以,想實現 使用瀏覽器訪問web專案中的java物件裡面的方法 這個功能,就必須按照javaEE中的相關規範來編寫程式碼      

    在規範中,把能夠使用url地址來訪問的java類,稱之為servlet

四、什麼是servlet?

    servlet就是一種java類,這種java類在JavaWeb專案中,可以使用瀏覽器通過url地址的形式來訪問。
     實現servlet功能的步驟:
    1.編寫servlet
        自己寫一個普通類,然後去實現或者繼承javaEE規範中所提供的指定介面或者父類,然後再重寫指定方法.這個指定介面或者父類都在tomcat的lib目錄裡面的servlet-api.jar中
     2.在web.xml檔案中配置自己編寫好的servlet
        因為servlet物件的建立,以及物件中指定方法的呼叫,都是由tomcat伺服器來負責處理的。
        web.xml配置檔案在啟動tomcat伺服器的期間必須要讀取的web專案的中的一個檔案,所有要把自己寫好的servlet相關資訊配置到web.xml中,以便讓tomcat及時的知道這些資訊,然後就可以建立物件和呼叫方法了.
         <servlet> 
            <servlet-name>hello</servlet-name> 
            <servlet-class>com.briup.test.HelloWorld</servlet-class> 
        </servlet> 
         <servlet-mapping> 
            <servlet-name>hello</servlet-name> 
            <url-pattern>/hello</url-pattern> 
        </servlet-mapping> 
 就可以通過url進行訪問了:
        http://127.0.0.1:8989/Web_Test/hello
         http://127.0.0.1:8989/Web_Test/test.html
        http://127.0.0.1:8989/Web_Test/zsailisi