前言
成都創(chuàng)新互聯(lián)公司專注于企業(yè)成都營(yíng)銷網(wǎng)站建設(shè)、網(wǎng)站重做改版、庫(kù)車網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、html5、成都做商城網(wǎng)站、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為庫(kù)車等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。Tomcat 中的請(qǐng)求都是由 Servlet 處理,靜態(tài)資源也不例外。在默認(rèn)的 web.xml 中,配置了一個(gè) DefaultServlet 用于處理靜態(tài)資源,它支持緩存和斷點(diǎn)續(xù)傳。
DefaultServlet 的基本處理過程如下:
接下來主要分析資源緩存的設(shè)計(jì)和實(shí)現(xiàn),以及 If 頭域的處理。
1. 資源緩存的設(shè)計(jì)
訪問磁盤的速度遠(yuǎn)遠(yuǎn)低于訪問內(nèi)存的速度,所以適當(dāng)?shù)木彺嬉徊糠朱o態(tài)資源能夠讓系統(tǒng)快速響應(yīng)。
Tomcat 在 6.0.53 版本實(shí)現(xiàn)靜態(tài)資源的處理時(shí),借助了 JNDI 的一些 API(但在使用時(shí)感覺與 JNDI 的關(guān)系不大),相關(guān)類圖及核心方法和屬性如下:
緩存相關(guān)的類:
資源目錄相關(guān)的類是:
默認(rèn)情況下,緩存大為 10 MB,單個(gè)緩存資源大為 512 KB,緩存的 TTL 為 5s。
一般的,在 Mapper 映射到處理靜態(tài)資源的 Wrapper 時(shí),會(huì)引起資源的加載,基本的方法調(diào)用情況如下:
Mapper.map(MessageBytes, MessageBytes, MappingData) └─Mapper.internalMap(CharChunk, CharChunk, MappingData) └─Mapper.internalMapWrapper(Mapper$Context, CharChunk, MappingData) └─ProxyDirContext.lookup(String) └─ProxyDirContext.cacheLookup(String) └─ResourceCache.lookup(String) └─ResourceCache.find(CacheEntry[], String)
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。