A. javaweb項目如何訪問靜態資源
1 在spring框架下,如果讓mvc攔截所有路徑,需要配置靜態資源路徑:
<mvc:resourceslocation="/image"mapping="image/**"/>
<mvc:resourceslocation="/css"mapping="css/**"/>
現在一般都使用rest風格介面, 即mvc攔截/rest/**請求, 所以只要把靜態文件放在其他路徑就可以了
2 原生servlet,struct2 直接訪問即可
B. web應用中的動態資源和靜態資源分別指什麼
直接把相應文件發送到客戶端的文件都是靜態資源。
如果不同的用戶可以得到不同的回答,是動態資源,一般是指資料庫資源。
C. 開發web應用程序時,靜態文件一般存放在什麼位置
一般大系統部署,會用Apache或EngineX作為前置Web伺服器,也就是這樣的模型:
互聯網接入路由----硬體負載均衡----前置Web伺服器----中間件----資料庫J2EE中間件在處理純文件訪問的能力其實遠低於Apache,所以一般將所有不需要許可權保護的靜態資源:圖片、視頻、音頻、JS腳本、CSS樣式文件、HTML靜態文件(一般是靜態化後的網頁),全部都放在「前置Web伺服器上」
有條件的話可以考慮使用單獨的域名和伺服器,或者使用雲存儲。可以減輕主web伺服器的負擔,同時提高網頁載入速度
D. web靜態資源在什麼時候被調用
1應用程序實現的動態頁面緩存應用程序把動態文件生成的html文件緩存到文件伺服器,以後用戶請求動態文件,直接從文件伺服器載入對應的靜態緩存的html文件返回給用戶,這裡面主要節省了動態語言的執行時間和資料庫訪問時間。但是會增加了緩存框架的載入和緩存查找的時間。2把解釋執行的開發語言編譯成為目標代碼這個主要把解釋執行的高級語言,例如java,php直接編譯成為平台相關的目標代碼,匯編代碼。在java裡面,比較著名的就是即時編譯器(JIT),其他的語言也要類似的機制。這裡面主要節省了就是解釋執行代碼的時間。這個會增加即時編譯的時間。3利用反向代理伺服器的緩存利用類似nginx的反向代理伺服器,對請求的url對應的輸出的進行緩存。這個緩存和應用程序實現的動態頁面緩存類似,只不過用反向代理充當了應用程序的緩存實現。主要節省了動態余元執行時間和資料庫訪問時間。4客戶端瀏覽器緩存客戶端瀏覽器緩存主要是通過在http頭部增加Last-Modified,If-Modified-Since,Expires,Cache-Control等標識,和伺服器進行協商,是否是採用客戶的本機緩存來實現。其中這裡面也會分為三種方式1通過Last-Modified,If-Modified-Since方式和伺服器通信,客戶發出http請求中包含If-Modified-Since,如果伺服器端代碼沒有修改,伺服器端返回302響應代碼的請求響應頭(內容不返回)客戶端則直接用本機緩存的內容緩存顯示結果。相當於節省了伺服器執行代碼時間以及數據傳輸時間。2通過Expires,Cache-Control控制,客戶端發現如果上次請求的頁面還未過期,通過Expires或者Cache-Control進行辨別,則直接顯示本機緩存的內容,不與伺服器進行通信。總結一下:1一般的高並發的應用程序,都在web層採用了以上幾種緩存,一般靜態資源(圖片,js,css)都會採用nginx反向代理+客戶端緩存來實現。2對於門戶網站,尤其是首頁的新聞,一般都會緩存起來,可以通過反向代理也可以通過應用程序緩存實現方式3對於下載或者視頻網站,由於數據傳輸比較大,直接採用瀏覽器本地緩存實現。
E. web工程下WebInfo下的jsp調用WebContent下的靜態資源,比如js文件路徑應該怎麼寫
<script src="/項目名/js/js文件名.js"></script>
F. java web項目中有很多的圖片,如何存放
一般有兩種情況,
一種是前端開發需要顯示的圖片,這個是頁面構成必須的元素,一般這些會做 動靜分離,後台介面 跟 前端資源會部署在不同的伺服器上,有不同的優化,一般會有轉發的伺服器,判斷是後台介面,就轉發到後台的伺服器,如果是前端資源,就轉發到前台的伺服器。一般情況下,前端伺服器,跟後台的伺服器,是分離開的,有不同的人去管理,如果項目小的話,可能就全放在一個。這個優化的化,你可以去了解下 CDN原理。這個是用來優化靜態資源載入情況的。
另一種情況是,顯示的圖片,不是前端構成的,是用戶上傳文件產生的,這種情況下,現在一般有專門的對象存儲,用過 七牛雲,跟阿里的。這個的邏輯是文件上傳的時候,不是上傳到我們自己的伺服器,上傳到專門的雲伺服器,我們自己資料庫只需要保存這些上傳文件的地址,真正使用的時候,把連接給前端,前端自動會根據內容到專門的雲伺服器上去獲取。所有的安全,優化,帶寬,緩存命中,這些都有由雲伺服器去保證。 簡單來說,只有有錢,這些東西根本不會成為你項目的瓶頸。
作為技術,我們討論的應該不是這些。圖片會做備份,這個可以有專門的磁碟陣列去實現,簡單來說,就是上傳的內容保存到磁碟的時候,會自動多保存幾個備份到不同的磁碟上。還是那句話,多去了解下CDN的原理,最後這段,個人理解,不一定對。