Tomcat 學習 應用
what
ApacheTomcat®軟件是Java Servlet,JavaServer Pages,Java Expression Language和Java WebSocket技術的開源實現。 Java Servlet,JavaServer Pages,Java表達式語言和Java WebSocket規範是根據Java社區流程開發的。 Tomcat 服務器是一個免費的開放源代碼的Web 應用服務器,屬於輕量級應用服務器,在中小型系統和併發訪問用戶不是很多的場合下被普遍使用,是開發和調試JSP 程序的首選。 Tomcat爲HTML頁面服務,而 實際上運行JSP 頁面和Servlet。Tomcat和IIS等Web服務器一樣,具有處理HTML頁面的功能,另外它還是一個Servlet和JSP容器,獨立的Servlet容器是Tomcat的默認模式。 Web服務器
- Tomcat(Apache):應用最廣的JavaWeb服務器,不完全支持JavaEE規範
- JBoss(Redhat):支持JavaEE,比較廣,EJB容器
- GlassFish(Orcale):應用相對少
- Resin(Caucho):支持JavaEE,越來越廣
- Weblogic(Orcale):支持JavaEE,收費,大型項目
- Websphere(IBM):支持JavaEE,收費,大型項目
why
web瀏覽器只能解析HTML資源,而JSP/Servlet動態資源瀏覽器無法看懂,這時候我們需要像Tomcat這種web服務器將JSP/Servlet動態資源轉換成靜態資源。
how
當客戶端請求的頁面如果是靜態網頁,服務器會直接將靜態網頁的內容響應給客戶端。如果請求的是動態網頁,服務器需要把填充了數據的動態網頁轉換成靜態網頁,然後再把轉換後的靜態網頁響應給客戶端 ![Tomcat響應客戶端的請求](https://img-blog.csdn.net/20170707003848217?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY29sb250ZW4=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
Tomcat安裝啓動
- http://tomcat.apache.org/官網下載
- 解壓版本,無需安裝,一臺機器多個
- bin目錄下startup.bat(windows腳本)啓動,
shutdown.bat。 Linux下使用startup.sh和shutdown.sh
Tomcat目錄結構
- /bin:存放windows或Linux平臺上啓動和關閉Tomcat的腳本文件
- /conf:存放Tomcat服務器的各種全局配置文件,其中最重要的是server.xml和web.xml
- /doc:存放Tomcat文檔
- /server:包含三個子目錄:classes、lib和webapps
- /server/lib:存放Tomcat服務器所需的各種JAR文件
- /server/webapps:存放Tomcat自帶的兩個WEB應用admin應用和 manager應用
- /common/lib:存放Tomcat服務器以及所有web應用都可以訪問的jar文件
- /shared/lib:存放所有web應用都可以訪問的jar文件(但是不能被Tomcat服務器訪問)
- /logs:存放Tomcat執行時的日誌文件,查看客戶端訪問記錄等等
- /src:存放Tomcat的源代碼
- /webapps:Tomcat的主要Web發佈目錄,默認情況下把Web應用文件放於此目錄
- /work:存放JSP編譯後產生的class文件
- WEB應用的目錄結構:假設在$CATALINA_HOME/webapps下有helloword的web應用
- /helloword:Web應用的根目錄,所有的jsp文件和html文件都在此目錄下
- /helloword/WEB_INF:存放該web應用發佈時的描述文件web.xml
- /helloword/WEB_INFhelloword/class:存放各種class文件,Servlet文件也存放於此目錄下
- /helloword/WEB_INF/lib:存放各鍾Web應用所需要的jar文件。比如可以存放JDBC驅動程序的JAR文件
- Tomcat加載類和資源的順序爲(以helloword應用爲例)
- helloword (/webapps/helloword/Web-INF/下的classes,lib子目錄中.calss及.jar,僅helloapp可以加載)
- Bootstrap ($JAVA_HOME/jre/lib/ext/*.jar)
- System ($CLASSPATH/*.class和CLASSPATH中指定的jar)
- Common ($CATALINA_HOME/common/下的classes,lib,endores子目錄中.class及.jar)
- Catalina ($CATALINA_HOME/server/下的classes,lib子目錄中.calss及.jar,僅Tomcat可以加載)
- Shared ($CATALINA_HOME/shared/下的classes,lib子目錄中.calss及.jar,僅所有Web應用可以加載)
* WEB-INF下的資源不允許瀏覽器直接訪問*
訪問Web資源
瀏覽器輸入URL訪問
協議名://域名:端口(80端口爲默認端口可省)/路徑
例如:http://localhost:80/index.jsp(Tomcat歡迎頁)
Tomcat配置
- tomcat 的端口
- 修改server.xml
- port值修改爲想要的端口,(修改爲80端口可能遇到端口被佔用的情況System或IIS佔用應先停掉)
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
- 修改server.xml
- tomcat配置項目路勁
- 默認部署在webapps下
- 修改server.xml
- 默認部署在webapps下
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Context path="hello_word" docBase="D:/helloword"/>
<!--
path: 指定當前應用的名稱
docBase:指定應用的物理路徑
瀏覽器訪問URL:`http://localhost/hello_word
-->
</Host>
- conf/catalana/localhost 下建hello_word.xml文件,內容爲:
<Context docBase="D:/helloword"/>