生活随笔
收集整理的這篇文章主要介紹了
DefaultServlet
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
?
缺省servlet:org.apache.catalina.servlets.DefaultServlet,作用是處理其他servlet處理不到的請求
我們知道,在我們工程的web.xml中,會配置servlet映射,但是有些訪問無法找到映射,如一些靜態(tài)圖片,一些js文件等,那服務(wù)器是如何返回給客戶端的呢?
要回答上面的問題,我們必須詳細(xì)了解下DefaultServlet,下面我們看tomcat的官方解釋。
1.什么是DefaultServlet?
默認(rèn)的servlet是既服務(wù)于靜態(tài)資源又服務(wù)于目錄列表(如果允許目錄列表的話)的servlet。
2.它被聲明在哪里?
它在$CATALINA_HOME/conf/web.xml中被全局聲明。默認(rèn)形式的聲明是這樣的:?$CATALINA_HOME/conf/web.xml
?
[html] view plaincopy print?
<servlet>??????????<servlet-name>default</servlet-name>??????????<servlet-class>????????????org.apache.catalina.servlets.DefaultServlet??????????</servlet-class>??????????<init-param>??????????????<param-name>debug</param-name>??????????????<param-value>0</param-value>??????????</init-param>??????????<init-param>??????????????<param-name>listings</param-name>??????????????<param-value>true</param-value>??????????</init-param>??????????<load-on-startup>1</load-on-startup>??????</servlet>????...????????<servlet-mapping>??????????<servlet-name>default</servlet-name>??????????<url-pattern>/</url-pattern>??????</servlet-mapping>?? <servlet><servlet-name>default</servlet-name><servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class><init-param><param-name>debug</param-name><param-value>0</param-value></init-param><init-param><param-name>listings</param-name><param-value>true</param-value></init-param><load-on-startup>1</load-on-startup></servlet>...<servlet-mapping><servlet-name>default</servlet-name><url-pattern>/</url-pattern></servlet-mapping>
因此在默認(rèn)的情況下,默認(rèn)servlet在webapp啟動時被裝載,目錄列表不可用,日志調(diào)試功能被關(guān)掉。
當(dāng)訪問的資源在工程的web.xml中沒有Servlet映射時,我們?nèi)绾渭虞d資源的呢?
其實這就是一個io操作,DefaultServlet先根據(jù)客戶端的訪問路徑,獲取資源路徑,然后找到服務(wù)器上資源絕對路徑,再判斷是否存在,如果不存在,則返回404或做其他處理,如果存在,則進行一個io讀取操作返回給客戶端。
轉(zhuǎn)載于:https://www.cnblogs.com/firstdream/p/9087739.html
總結(jié)
以上是生活随笔為你收集整理的DefaultServlet的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。