电竞比分网-中国电竞赛事及体育赛事平台

分享

tomcat服務(wù)器

 印度阿三17 2019-08-04

一、常用的web服務(wù)器

*Tomcat:Apache的產(chǎn)品,它是一個(gè)開源免費(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:配置整個(gè)服務(wù)器信息。例如修改端口號,添加虛擬主機(jī)等;
  • tomcatusers.xml:存儲tomcat用戶的文件,這里保存的是tomcat的用戶名及密碼,以及用戶的角色信息。
  • web.xml:部署描述符文件,這個(gè)文件中注冊了很多MIME類型,即文檔類型。這些MIME類型是客戶端與服務(wù)器之間說明文檔類型的,如用戶請求一個(gè)html網(wǎng)頁,那么服務(wù)器還會告訴客戶端瀏覽器響應(yīng)的文檔是text/html類型的,這就是一個(gè)MIME類型??蛻舳藶g覽器通過這個(gè)MIME類型就知道如何處理它了。當(dāng)然是在瀏覽器中顯示這個(gè)html文件了。但如果服務(wù)器響應(yīng)的是一個(gè)exe文件,那么瀏覽器就不可能顯示它,而是應(yīng)該彈出下載窗口才對。MIME就是用來說明文檔的內(nèi)容是什么類型的!
  • context.xml:對所有應(yīng)用的統(tǒng)一配置,通常我們不會去配置它。
lib:tomcat運(yùn)行javaee程序需要依賴的那些jar包。 logs:tomcat運(yùn)行的時(shí)候的日志信息。 temp:存放Tomcat的臨時(shí)文件,這個(gè)目錄下的東西可以在停止Tomcat后刪除! webapps:存放web項(xiàng)目的目錄,其中每個(gè)文件夾都是一個(gè)項(xiàng)目;如果這個(gè)目錄下已經(jīng)存在了目錄,那么都是tomcat自帶的。項(xiàng)目。其中ROOT是一個(gè)特殊的項(xiàng)目,在地址欄中沒有給出項(xiàng)目目錄時(shí),對應(yīng)的就是ROOT項(xiàng)目。http://localhost:8080/examples,進(jìn)入示例項(xiàng)目。其中examples就是項(xiàng)目名,即文件夾的名字。 work:運(yùn)行時(shí)生成的文件,最終運(yùn)行的文件都在這里。通過webapps中的項(xiàng)目生成的!可以把這個(gè)目錄下的內(nèi)容刪除,再次運(yùn)行時(shí)會生再次生成work目錄。當(dāng)客戶端用戶訪問一個(gè)JSP文件時(shí),Tomcat會通過JSP生成Java文件,然后再編譯Java文件生成class文件,生成的java和class文件都會存放到這個(gè)目錄下。 ? server.xml詳講 (1)配置外部應(yīng)用   原來我們的項(xiàng)目放到webapps下,現(xiàn)在我放到外面,也希望tomcat可以找到它! ?? ?? ? 第一種方式:conf/server.xml:打開server.xml文件,找到<Host>元素,在其中添加<Context>元素,代碼如下: server.xml ?
  1. path:指定當(dāng)前應(yīng)用的名稱;
  2. docBase:指定應(yīng)用的物理位置;
  3. 瀏覽器訪問路徑:。
第二種方式:conf/catalana/localhost:在該目錄下創(chuàng)建itcast_hello.xml文件,在該文件中編寫<Context>元素,代碼如下: ?
  1. 文件名:指定當(dāng)前應(yīng)用的名稱;
  2. docBase:指定應(yīng)用的物理位置;
  3. 瀏覽器訪問路徑:http://localhost:8080/itcast_hello/index.html
(2)理解server.xml
  • <Server>:根元素,表示整個(gè)服務(wù)器的配置信息;
  • <Service>:<Server>的子元素,在<Server>中只能有一個(gè)<Service>元素,它表示服務(wù);
  • <Connector>:<Service>的子元素,在<Service>中可以有N個(gè)<Connector>元素,它表示連接。
  • <Engine>:<Service>的子元素,在<Service>中只能有一<Engine>元素,該元素表示引擎,它是<Service>組件的核心。
  • <Host>:<Engine>的子元素,在<Engine>中可以有N個(gè)<Host>元素,每個(gè)<Host>元素表示一個(gè)虛擬主機(jī)。所謂虛擬主機(jī)就像是真的主機(jī)一樣,每個(gè)主機(jī)都有自己的主機(jī)名和項(xiàng)目目錄。例如<Host name=”localhost” appBase=”webapps”>表示主機(jī)名為localhost,這個(gè)主機(jī)的項(xiàng)目存放在webapps目錄中。訪問這個(gè)項(xiàng)目下的主機(jī)時(shí),需要使用localhost主機(jī)名,項(xiàng)目都存放在webapps目錄下。
  • <Context>:<Host>元素的子元素,在<Host>中可以有N個(gè)<Context>元素,每個(gè)<Context>元素表示一個(gè)應(yīng)用。如果應(yīng)用在<Host>的appBase指定的目錄下,那么可以不配置<Context>元素,如果是外部應(yīng)用,那么就必須配置<Context>。如果要為應(yīng)用指定資源,也需要配置<Context>元素。
用戶發(fā)出一個(gè)請求: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.就可以訪問我們的項(xiàng)目。 完成這一目標(biāo),我們需要做三件事:
  • 修改端口號為80,這一點(diǎn)應(yīng)該沒有問題吧;
  • 在本機(jī)上可以解析域名為127.0.0.1,這需要修改C:\WINDOWS\system32\drivers\etc\hosts文件,添加對http://www.和127.0.01的綁定關(guān)系;
  • 在server.xml文件中添加一個(gè)<Host>(主機(jī))。
  1. 修改端口號為80
  1. 綁定http://www.和127.0.01的綁定關(guān)系
  1. server.xml文件中添加一個(gè)<Host>
  • name=”www.”:指定虛擬主機(jī)名為www.;
  • appBase=”F:/itcastapps”:指定當(dāng)前虛擬主機(jī)的應(yīng)用程序存放目錄為F:/itcastapps。
  • 在itcastapps目錄下創(chuàng)建名為ROOT的應(yīng)用,因?yàn)橐粋€(gè)主機(jī)只可以有一個(gè)名為ROOT的應(yīng)用,名為ROOT的應(yīng)用在瀏覽器中訪問是可以不給出應(yīng)用名稱。
現(xiàn)在訪問:http://www.看看是什么頁面! 請注意,只有本機(jī)可以通過http://www.來訪問,而其他電腦不可以! ?

三、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ù)器啟動時(shí),會加載所有這個(gè)目錄下的應(yīng)用。如果你想要修改這個(gè)默認(rèn)目錄,可以在conf下的server.xml文件里修改Host標(biāo)簽里的appBase值。 這個(gè)方法實(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:瀏覽器訪問時(shí)的路徑名   docBase:web項(xiàng)目的WebRoot所在的路徑,注意是WebRoot的路徑,不是項(xiàng)目的路徑。其實(shí)也就是編譯后的項(xiàng)目   reloadble:設(shè)定項(xiàng)目有改動時(shí),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)目時(shí)的根路徑只取決于XML文件的名稱,如上述例子中,訪問該應(yīng)用程序地址如下:http://localhost:8080/jfinal_demo ; 推薦使用第三種方式,因?yàn)椴恍枰薷膖omcat默認(rèn)配置,對Tomcat的侵入性最小,并且如果想取消部署,直接刪除xml配置文件即可。 以上幾種方法都經(jīng)過本人測試,除此之外還有Tomcat熱部署的方式 。 總結(jié): ①、第一種方法比較普通,但是我們需要將編譯好的項(xiàng)目重新 copy 到 webapps 目錄下,多出了兩步操作 ②、第二種方法直接在 server.xml 文件中配置,但是從 tomcat5.0版本開始后,server.xml 文件作為 tomcat 啟動的主要配置文件,一旦 tomcat 啟動后,便不會再讀取這個(gè)文件,因此無法再 tomcat 服務(wù)啟動后發(fā)布 web 項(xiàng)目 ③、第三種方法是最好的,每個(gè)項(xiàng)目分開配置,tomcat 將以\conf\Catalina\localhost 目錄下的 xml 文件的文件名作為 web 應(yīng)用的上下文路徑,而不再理會 <Context>中配置的 path 路徑,因此在配置的時(shí)候,可以不寫 path。 通常我們使用第三種方法 ?

4、常見的問題

訪問html頁面404 查看war包下是否有該頁面 ?

來源:https://www./content-4-377301.html

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多