java開(kāi)發(fā)中涉及到的工具--Tomcat

一、Tomcat服務(wù)器;
TOMCAT服務(wù)器的安裝與配置
1.常見(jiàn)服務(wù)器:WebLogic(BEA)、webSphere(IBM)、Tomcat(Apache)
2.Tomcat 的下載與安裝
下載地址:http://tomcat.apache.org/
安裝目錄不能包含中文和空格
JAVA_HOME環(huán)境變量指定Tomcat運(yùn)行時(shí)所要用的jdk所在的位置,注意,配到目錄就行了,不用指定到bin
端口占用問(wèn)題:netstat -ano命令查看端口占用信息
Catalina_Home環(huán)境變量:startup.bat啟動(dòng)哪個(gè)tomcat由此環(huán)境變量指定,如果不配置則啟動(dòng)當(dāng)前tomcat,推薦不要配置此環(huán)境變量
3.Tomcat的目錄結(jié)構(gòu)

圖片.png
  bin--存放tomcat啟動(dòng)關(guān)閉所用的批處理文件
  conf--tomcat的配置文件,最終要的是server.xml
            *實(shí)驗(yàn):修改servlet.xml,更改tomcat運(yùn)行所在的端口號(hào),從8080改為80
  lib--tomcat運(yùn)行所需jar包
  logs--tomcat運(yùn)行時(shí)產(chǎn)生的日志文件
  temp--tomcat運(yùn)行時(shí)使用的臨時(shí)目錄,不需要我們關(guān)注
  webapps--web應(yīng)用所應(yīng)存放的目錄
  work--tomcat工作目錄,

4.虛擬主機(jī)(一個(gè)真實(shí)主機(jī)可以運(yùn)行多個(gè)網(wǎng)站,對(duì)于瀏覽器來(lái)說(shuō)訪問(wèn)這些網(wǎng)站感覺(jué)起來(lái)就像這些網(wǎng)站都運(yùn)行在自己的獨(dú)立主機(jī)中一樣,所以,我們可以說(shuō)這里的每一個(gè)網(wǎng)站都運(yùn)行在一個(gè)虛擬主機(jī)上,一個(gè)網(wǎng)站就是一個(gè)虛擬主機(jī))

        4.1配置虛擬主機(jī)
            在server.xml中<Engine>標(biāo)簽下配置<Host>,其中name屬性指定虛擬主機(jī)名,appBase指定虛擬主機(jī)所在的目錄
            只在servlet.xml中配置Hosts,還不能是其他人通過(guò)虛擬主機(jī)名訪問(wèn)網(wǎng)站,還需要在DNS服務(wù)器上注冊(cè)一把,我們可以使用hosts文件模擬這個(gè)過(guò)程
            默認(rèn)虛擬主機(jī):在配置多個(gè)虛擬主機(jī)的情況下,如果瀏覽器使用ip地址直接訪問(wèn)網(wǎng)站時(shí),該使用哪個(gè)虛擬主機(jī)響應(yīng)呢?可以在<Engine>標(biāo)簽上設(shè)置defaultHost來(lái)指定

5.web應(yīng)用(web資源不能直接交給虛擬主機(jī),需要按照功能組織用目錄成一個(gè)web應(yīng)用再交給虛擬主機(jī)管理)
5.1web應(yīng)用的目錄結(jié)構(gòu)

                web應(yīng)用目錄
                    |
                        -html、css、js、jsp
                    |
                        -WEB-INF
                            |
                                -classes
                            |
                                -lib
                            |
                                -web.xml

5.2 web.xml文件的作用:

                    某個(gè)web資源配置為web應(yīng)用首頁(yè)
                    將servlet程序映射到某個(gè)url地址上
                    為web應(yīng)用配置監(jiān)聽(tīng)器
                    為web應(yīng)用配置過(guò)濾器
                    但凡涉及到對(duì)web資源進(jìn)行配置,都需要通過(guò)web.xml文件
                        *實(shí)驗(yàn):配置一個(gè)web應(yīng)用的主頁(yè)

5.3 web應(yīng)用的部署;

(1)在server.xml的<Host>標(biāo)簽下配置<Context path="虛擬路徑" docBase="真實(shí)路徑">如果path=""則這個(gè)web應(yīng)用就被配置為了這個(gè)虛擬主機(jī)的默認(rèn)web應(yīng)用
(2)在tomcat/conf/引擎名/虛擬主機(jī)名 之下建立一個(gè).xml文件,其中文件名用來(lái)指定虛擬路徑,如果是多級(jí)的用#代替/表示,文件中配置<Context docBase="真實(shí)目錄">,如果文件名起為ROOT.xml則此web應(yīng)用為默認(rèn)web應(yīng)用
(3)直接將web應(yīng)用放置到虛擬主機(jī)對(duì)應(yīng)的目錄下,如果目錄名起為ROOT則此web應(yīng)用為默認(rèn)web應(yīng)用
    ~如果三處都配置默認(rèn)web應(yīng)用則server.xml > config/.../xx.xml > webapps

5.4雜項(xiàng)

  (1)打war包:方式一:jar -cvf news.war * 方式二:直接用壓縮工具壓縮為zip包,該后綴為.war
  (2)通用context和通用web.xml,所有的<Context>都繼承子conf/context.xml,所有的web.xml都繼承自conf/web.xml
  (3)reloadable讓tomcat自動(dòng)加載更新后的web應(yīng)用,當(dāng)java程序修改后不用重啟,服務(wù)器自動(dòng)從新加載,開(kāi)發(fā)時(shí)設(shè)為true方便開(kāi)發(fā),發(fā)布時(shí)設(shè)為false,提高性能
  (4)Tomcat管理平臺(tái),可以在conf/tomcat-users.xml下配置用戶名密碼及權(quán)限;

Tomcat的面試題:
1.Tomcat處理一個(gè)HTTP請(qǐng)求的過(guò)程 ?

答:1) 請(qǐng)求被發(fā)送到本機(jī)端口8080,被在那里偵聽(tīng)的Coyote HTTP/1.1 Connector獲得
2) Connector把該請(qǐng)求交給它所在的Service的Engine來(lái)處理,并等待來(lái)自Engine的回應(yīng)
3) Engine獲得請(qǐng)求localhost/yy/index.jsp,匹配它所擁有的所有虛擬主機(jī)Host
4) Engine匹配到名為localhost的Host(即使匹配不到也把請(qǐng)求交給該Host處理,因?yàn)樵揌ost被定義為該Engine的默認(rèn)主機(jī))
5) localhost Host獲得請(qǐng)求/yy/index.jsp,匹配它所擁有的所有Context
6) Host匹配到路徑為/yy的Context(如果匹配不到就把該請(qǐng)求交給路徑名為”“的Context去處理)
7) path=”/yy”的Context獲得請(qǐng)求/index.jsp,在它的mapping table中尋找對(duì)應(yīng)的servlet
8) Context匹配到URL PATTERN為*.jsp的servlet,對(duì)應(yīng)于JspServlet類
9) 構(gòu)造HttpServletRequest對(duì)象和HttpServletResponse對(duì)象,作為參數(shù)調(diào)用JspServlet的doGet或doPost方法
10)Context把執(zhí)行完了之后的HttpServletResponse對(duì)象返回給Host
11)Host把HttpServletResponse對(duì)象返回給Engine
12)Engine把HttpServletResponse對(duì)象返回給Connector
13)Connector把HttpServletResponse對(duì)象返回給客戶browser

2.Tomcat作為Web服務(wù)器,它的處理性能直接關(guān)系到用戶體驗(yàn),下面是幾種常見(jiàn)的優(yōu)化措施?

1) 優(yōu)化tomcat參數(shù)

這里以tomcat7的參數(shù)配置為例,需要修改conf/server.xml文件,主要是優(yōu)化連接配置,關(guān)閉客戶端dns查詢。
<Connector port="8080"
protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="20000"
redirectPort="8443"
maxThreads="500"
minSpareThreads="20"
acceptCount="100"
disableUploadTimeout="true"
enableLookups="false"
URIEncoding="UTF-8" />

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,537評(píng)論 19 139
  • 從三月份找實(shí)習(xí)到現(xiàn)在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂(lè)視家的研發(fā)崗...
    時(shí)芥藍(lán)閱讀 42,789評(píng)論 11 349
  • 轉(zhuǎn)自陳明乾的博客,可能有一定更新。 轉(zhuǎn)原文聲明:原創(chuàng)作品,允許轉(zhuǎn)載,轉(zhuǎn)載時(shí)請(qǐng)務(wù)必以超鏈接形式標(biāo)明文章 原始出處 、...
    C86guli閱讀 2,802評(píng)論 1 37
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類相關(guān)的語(yǔ)法,內(nèi)部類的語(yǔ)法,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚_t_閱讀 34,641評(píng)論 18 399
  • 導(dǎo)語(yǔ):聽(tīng)說(shuō)過(guò)小牛隊(duì),你就應(yīng)該知道馬克·庫(kù)班。他也是知名的連續(xù)創(chuàng)業(yè)者,是HDNet的聯(lián)合創(chuàng)始人及董事長(zhǎng)。關(guān)于怎樣建設(shè)...
    f9860d1a29af閱讀 402評(píng)論 0 1

友情鏈接更多精彩內(nèi)容