一、常用的web服務(wù)器
*Tomcat:Apache的產(chǎn)品,它是一個開源免費(fèi)的web服務(wù)器。*JBoss(Redhat紅帽):支持JavaEE,應(yīng)用比較廣;EJB容器* GlassFish(Orcale):Oracle開發(fā)JavaWeb服務(wù)器,應(yīng)用不是很廣;* Resin(Caucho):支持JavaEE,應(yīng)用越來越廣;* Weblogic(Orcale):要錢的!支持JavaEE,適合大型項(xiàng)目;* Websphere(IBM):要錢的!支持JavaEE,適合大型項(xiàng)目;web項(xiàng)目開發(fā)好之后,需要發(fā)布(部署)到一臺服務(wù)器上,然后外界才能訪問。
二、tomcat目錄結(jié)構(gòu)
bin:二進(jìn)制文件存放的目錄,啟動文件,停止文件等。conf:保存的tomcat服務(wù)器中的所有配置文件。
- server.xml:配置整個服務(wù)器信息。例如修改端口號,添加虛擬主機(jī)等;
- tomcatusers.xml:存儲tomcat用戶的文件,這里保存的是tomcat的用戶名及密碼,以及用戶的角色信息。
- web.xml:部署描述符文件,這個文件中注冊了很多MIME類型,即文檔類型。這些MIME類型是客戶端與服務(wù)器之間說明文檔類型的,如用戶請求一個html網(wǎng)頁,那么服務(wù)器還會告訴客戶端瀏覽器響應(yīng)的文檔是text/html類型的,這就是一個MIME類型??蛻舳藶g覽器通過這個MIME類型就知道如何處理它了。當(dāng)然是在瀏覽器中顯示這個html文件了。但如果服務(wù)器響應(yīng)的是一個exe文件,那么瀏覽器就不可能顯示它,而是應(yīng)該彈出下載窗口才對。MIME就是用來說明文檔的內(nèi)容是什么類型的!
- context.xml:對所有應(yīng)用的統(tǒng)一配置,通常我們不會去配置它。
lib:tomcat運(yùn)行javaee程序需要依賴的那些jar包。logs:tomcat運(yùn)行的時候的日志信息。temp:存放Tomcat的臨時文件,這個目錄下的東西可以在停止Tomcat后刪除!webapps:存放web項(xiàng)目的目錄,其中每個文件夾都是一個項(xiàng)目;如果這個目錄下已經(jīng)存在了目錄,那么都是tomcat自帶的。項(xiàng)目。其中ROOT是一個特殊的項(xiàng)目,在地址欄中沒有給出項(xiàng)目目錄時,對應(yīng)的就是ROOT項(xiàng)目。http://localhost:8080/examples,進(jìn)入示例項(xiàng)目。其中examples就是項(xiàng)目名,即文件夾的名字。work:運(yùn)行時生成的文件,最終運(yùn)行的文件都在這里。通過webapps中的項(xiàng)目生成的!可以把這個目錄下的內(nèi)容刪除,再次運(yùn)行時會生再次生成work目錄。當(dāng)客戶端用戶訪問一個JSP文件時,Tomcat會通過JSP生成Java文件,然后再編譯Java文件生成class文件,生成的java和class文件都會存放到這個目錄下。?server.xml詳講(1)配置外部應(yīng)用 原來我們的項(xiàng)目放到webapps下,現(xiàn)在我放到外面,也希望tomcat可以找到它!?? ?? ? 第一種方式:conf/server.xml:打開server.xml文件,找到<Host>元素,在其中添加<Context>元素,代碼如下:server.xml
?
- path:指定當(dāng)前應(yīng)用的名稱;
- docBase:指定應(yīng)用的物理位置;
- 瀏覽器訪問路徑:。
第二種方式:conf/catalana/localhost:在該目錄下創(chuàng)建itcast_hello.xml文件,在該文件中編寫<Context>元素,代碼如下:
?
- 文件名:指定當(dāng)前應(yīng)用的名稱;
- docBase:指定應(yīng)用的物理位置;
- 瀏覽器訪問路徑:http://localhost:8080/itcast_hello/index.html。
(2)理解server.xml
- <Server>:根元素,表示整個服務(wù)器的配置信息;
- <Service>:<Server>的子元素,在<Server>中只能有一個<Service>元素,它表示服務(wù);
- <Connector>:<Service>的子元素,在<Service>中可以有N個<Connector>元素,它表示連接。
- <Engine>:<Service>的子元素,在<Service>中只能有一<Engine>元素,該元素表示引擎,它是<Service>組件的核心。
- <Host>:<Engine>的子元素,在<Engine>中可以有N個<Host>元素,每個<Host>元素表示一個虛擬主機(jī)。所謂虛擬主機(jī)就像是真的主機(jī)一樣,每個主機(jī)都有自己的主機(jī)名和項(xiàng)目目錄。例如<Host name=”localhost” appBase=”webapps”>表示主機(jī)名為localhost,這個主機(jī)的項(xiàng)目存放在webapps目錄中。訪問這個項(xiàng)目下的主機(jī)時,需要使用localhost主機(jī)名,項(xiàng)目都存放在webapps目錄下。
- <Context>:<Host>元素的子元素,在<Host>中可以有N個<Context>元素,每個<Context>元素表示一個應(yīng)用。如果應(yīng)用在<Host>的appBase指定的目錄下,那么可以不配置<Context>元素,如果是外部應(yīng)用,那么就必須配置<Context>。如果要為應(yīng)用指定資源,也需要配置<Context>元素。
用戶發(fā)出一個請求:
http://localhost:8080/hello/index.jsp。發(fā)現(xiàn)是http/1.1協(xié)議,而且還是8080端口,所以就交給了處理這一請求的“服務(wù)員(處理HTTP請求的<Connector>)”,“服務(wù)員”再把請求交給了“后廚(<Engine>)”,因?yàn)檎埱笫且槐P水煮魚,所以由“川菜區(qū)(<Host>)”負(fù)責(zé),因?yàn)椤按罄贤鯉煾?lt;Context>”做水煮魚最地道,所以由它完成。
- <Connector>:關(guān)心請求中的http、和8080;
- < Host>:關(guān)心localhost;
- <Context>:關(guān)心hello
(3)映射虛擬主機(jī)
我們的目標(biāo)是,在瀏覽器中輸出:
http://www.itcast.cn就可以訪問我們的項(xiàng)目。完成這一目標(biāo),我們需要做三件事:
- 修改端口號為80,這一點(diǎn)應(yīng)該沒有問題吧;
- 在本機(jī)上可以解析域名為127.0.0.1,這需要修改C:\WINDOWS\system32\drivers\etc\hosts文件,添加對http://www.itcast.cn和127.0.01的綁定關(guān)系;
- 在server.xml文件中添加一個<Host>(主機(jī))。
- 修改端口號為80
- 綁定http://www.itcast.cn和127.0.01的綁定關(guān)系
- server.xml文件中添加一個<Host>
- name=”www.itcast.cn”:指定虛擬主機(jī)名為www.itcast.cn;
- appBase=”F:/itcastapps”:指定當(dāng)前虛擬主機(jī)的應(yīng)用程序存放目錄為F:/itcastapps。
- 在itcastapps目錄下創(chuàng)建名為ROOT的應(yīng)用,因?yàn)橐粋€主機(jī)只可以有一個名為ROOT的應(yīng)用,名為ROOT的應(yīng)用在瀏覽器中訪問是可以不給出應(yīng)用名稱。
現(xiàn)在訪問:
http://www.itcast.cn看看是什么頁面!請注意,只有本機(jī)可以通過
http://www.itcast.cn來訪問,而其他電腦不可以!?
三、tomcat部署項(xiàng)目的三種方式
3.1 直接將web項(xiàng)目文件件拷貝到webapps目錄中
(1)將編寫并編譯好的web項(xiàng)目(注意要是編譯好的,如果是 eclipse,可以將項(xiàng)目打成 war 包放入),放入到 webapps 中(2)啟動服務(wù)器(3) 在瀏覽器輸入:http://localhost:8080/項(xiàng)目名/訪問的文件名Tomcat的Webapps目錄是Tomcat默認(rèn)的應(yīng)用目錄,當(dāng)服務(wù)器啟動時,會加載所有這個目錄下的應(yīng)用。如果你想要修改這個默認(rèn)目錄,可以在conf下的server.xml文件里修改Host標(biāo)簽里的appBase值。這個方法實(shí)際上和在IDE開發(fā)環(huán)境里部署項(xiàng)目是一樣的。
?3.2修改 conf/server.xml 文件
打開tomcat下conf/server.xml,在<Host> </Host>標(biāo)簽之間輸入項(xiàng)目配置信息<Context path="/WebProject" docBase="D:/WebProject" reloadable="true" /> path:瀏覽器訪問時的路徑名 docBase:web項(xiàng)目的WebRoot所在的路徑,注意是WebRoot的路徑,不是項(xiàng)目的路徑。其實(shí)也就是編譯后的項(xiàng)目 reloadble:設(shè)定項(xiàng)目有改動時,tomcat是否重新加載該項(xiàng)目 ②、雙擊 startup.bat,啟動 tomcat 服務(wù)器,然后在瀏覽器輸入訪問的項(xiàng)目名稱路徑
3.3??在confCatalinalocalhost 目錄下添加xml配置文件
新建名為jfinal_demo.xml文件,文件內(nèi)容配置如下:<Context path="/jfinal_demo" docBase="F:workjfinal_demoWebRoot" reloadable ="true" debug="0" privileged="true"></Context>Catalinalocalhost目錄tomcat下載下來默認(rèn)是沒有的,首次啟動會自動創(chuàng)建,也可以手動創(chuàng)建;配置中可以去掉path屬性,因?yàn)樵L問項(xiàng)目時的根路徑只取決于XML文件的名稱,如上述例子中,訪問該應(yīng)用程序地址如下:http://localhost:8080/jfinal_demo ;推薦使用第三種方式,因?yàn)椴恍枰薷膖omcat默認(rèn)配置,對Tomcat的侵入性最小,并且如果想取消部署,直接刪除xml配置文件即可。以上幾種方法都經(jīng)過本人測試,除此之外還有Tomcat熱部署的方式 ??偨Y(jié):①、第一種方法比較普通,但是我們需要將編譯好的項(xiàng)目重新 copy 到 webapps 目錄下,多出了兩步操作②、第二種方法直接在 server.xml 文件中配置,但是從 tomcat5.0版本開始后,server.xml 文件作為 tomcat 啟動的主要配置文件,一旦 tomcat 啟動后,便不會再讀取這個文件,因此無法再 tomcat 服務(wù)啟動后發(fā)布 web 項(xiàng)目③、第三種方法是最好的,每個項(xiàng)目分開配置,tomcat 將以\conf\Catalina\localhost 目錄下的 xml 文件的文件名作為 web 應(yīng)用的上下文路徑,而不再理會 <Context>中配置的 path 路徑,因此在配置的時候,可以不寫 path。通常我們使用第三種方法?
4、常見的問題
訪問html頁面404 查看war包下是否有該頁面
?
來源:
https://www.icode9.com/content-4-377301.html
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點(diǎn)擊舉報(bào)。