zbb20171108 tomcat目錄結構
Tomcat8.0的目錄結構:
/bin:存放windows或Linux平臺上啟動和關閉Tomcat的腳本文件,startup.bat,shutdown.bat,可以直接開啟關閉tomcat服務。還有一些jar包如tomcat-juli.jar
/conf:存放Tomcat服務器的各種全局配置文件,其中包括server.xml(Tomcat的主要配置文件,,裏面配置了tomcat的3個端口號),
Tomcat-users.xml(配置tomcat用戶的賬戶名和密碼)和web.xml等配置文件
/lib:存放Tomcat服務器以及所有web應用都可以訪問的jar文件
/logs:存放Tomcat執行時的日誌文件
/temp:存放Tomcat運行時所產生的臨時文件
/webapps:Tomcat的主要Web發布目錄,默認情況下把Web應用文件放於此目錄
/work:Tomcat將JSP生成的Servlet源文件和字節碼文件放到這個目錄下
註意:
在MyEclipse中將一個web項目添加到服務器中(web容器,如tomcat),這個項目裏的java文件會被MyEclipse先編譯成 字節碼文件(.class)後加到tomcat目錄下的webapps,webapps下項目裏WEB-INF有個classes文件夾裏面放的是 java文件編譯後的class字節碼,jsp文件此時不會被編譯。等服務啟動,第一次訪問某jsp頁面時,對應被訪問到的jsp頁面會被編譯成字節碼和 servlet(如index.jsp被編譯成index_jsp和index_jsp)保存在work目錄下
用tomcat作web服務器的時候,部署的程序在webApps下,這些程序都是編譯後的程序(發布到tomcat的項目裏含的java類,
會被編譯成.class後才發布過來,源文件沒有發布過來,但這裏的jsp沒有經編譯的)。
tomcat有一個work目錄,裏面存放了jsp頁面的緩存,訪問過的jsp都會編譯,從 work裏進入Catalina後的如localhost站點文件
夾下的項目,我們可以看到那些jsp頁面會被編譯成應該是servlet文件,下次再來訪問時,就直接運行servlet類就可以向客戶端
反應響應頁面了,所以有的博客說第一次訪問時會比較慢,是因為新發布上去的頁面在第一個人訪問時,會先編譯成servlet文件,
所以慢了,一旦編譯好,那麽除非jsp頁面修改,不然下次訪問直接運行servlet就可以響應用戶,所以快,編譯後的文件都會存儲
在work目錄下。而tomcat顯示的目錄,都會從這個緩存裏找編譯後的jsp對應的class文件。所以當清空了work目錄後,該過程將
會從新來過。 有的時候會遇到一個問題,就是修改後的頁面在tomcat運行的時候顯示不了修改後的痕跡。這個時候刪除work目錄
下對應的項目文件夾,重新啟動tomcat就可以了。
在tomcat的conf配置文件夾下的server.xml文件裏配置了Host name後,就會在conf下的Catalina文件夾和work下的Catalina文件下
建立站點名稱的文件夾,項目每次發布都會放入來,也會記錄到 conf下的Catalina文件夾的配置文件裏去。
web.xml配置簡介:
1、默認(歡迎)文件的設置
在tomcat4\conf\web.xml中,<welcome-file-list>與IIS中的默認文件意思相同。
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
2、報錯文件的設置
<error-page>
<error-code>404</error-code>
<location>/notFileFound.jsp</location>
</error-page>
<error-page>
<exception-type>java.lang.NullPointerException</exception-type>
<location>/null.jsp</location>
</error-page>
如果某文件資源沒有找到,服務器要報404錯 誤,按上述配置則會調用\webapps\ROOT\notFileFound.jsp。
如果執行的某個JSP文 件產生NullPointException ,則會調用\webapps\ROOT\null.jsp
3、會話超時的設置
設置session 的過期時間,單 位是分鐘;
<session-config>
<session-timeout>30</session-timeout>
</session-config>
4、過濾器的設置
<filter>
<filter-name>FilterSource</filter-name>
<filter-class>project4. FilterSource</filter-class>
</filter>
<filter-mapping>
<filter-name>FilterSource</filter-name>
<url-pattern>/WwwServlet</url-pattern>
(<url-pattern>/haha/*</url-pattern>)
</filter-mapping>
過濾:
1) 身份驗證的過濾Authentication Filters
2) 日誌和審核的過濾Logging and AuditingFilters
3) 圖片轉化的過濾Image conversionFilters
4) 數據壓縮的過濾Data compressionFilters
5) 加密過濾Encryption Filters
6) Tokenizing Filters
7) 資源訪問事件觸發的過濾Filters that triggerresource access events XSL/T 過濾XSL/T filters
9) 內容類型的過濾Mime-type chain Filter 註意監聽器的順序,如:先安全過濾,然後資源,
然後內容類型等,這個順序可以自己定。
zbb20171108 tomcat目錄結構