A. javaweb項目如何訪問靜態資源
1 在spring框架下,如果讓mvc攔截所有路徑,需要配置靜態資源路徑:
<mvc:resourceslocation="/image"mapping="image/**"/>
<mvc:resourceslocation="/css"mapping="css/**"/>
現在一般都使用rest風格介面, 即mvc攔截/rest/**請求, 所以只要把靜態文件放在其他路徑就可以了
2 原生servlet,struct2 直接訪問即可
B. java中靜態資源和動態資源的區別
靜態資源:html,屬於客戶端
動態資源:jsp/servlet屬於伺服器端
一、靜態web頁面:
1、在靜態Web程序中,客戶端使用Web瀏覽器(IE、FireFox等)經過網路(Network)連接到伺服器上,使用HTTP協議發起一個請求(Request),告訴伺服器我現在需要得到哪個頁面,所有的請求交給Web伺服器,之後WEB伺服器根據用戶的需要,從文件系統(存放了所有靜態頁面的磁碟)取出內容。之後通過Web伺服器返回給客戶端,客戶端接收到內容之後經過瀏覽器渲染解析,得到顯示的效果。
2、為了讓靜態web頁面顯示更加好看,使用javascript/VBScript/ajax(AJAX即「Asynchronous
Javascript And
XML」(非同步JavaScript和XML),是指一種創建互動式網頁應用的網頁開發技術。)但是這些特效都是在客戶端上藉助於瀏覽器展現給用戶的,所以在伺服器上本身並沒有任何的變化。
3、靜態web無法連接資料庫;
4、靜態web資源開發技術:HTML;
5、由於現在的web頁面中,大量使用JS,導致瀏覽器打開頁面,就會佔用大量的內存,服務端的壓力是減輕了,但壓力轉移到了客戶端。
二、動態web頁面:
動態WEB中,程序依然使用客戶端和服務端,客戶端依然使用瀏覽器(IE、FireFox等),通過網路(Network)連接到伺服器上,使用HTTP協議發起請求(Request),現在的所有請求都先經過一個WEB Server來處理。
如果客戶端請求的是靜態資源(*.htm或者是*.htm),則將請求直接轉交給WEB伺服器,之後WEB伺服器從文件系統中取出內容,發送回客戶端瀏覽器進行解析執行。
如果客戶端請求的是動態資源(*.jsp、*.asp/*.aspx、*.php),則先將請求轉交給WEB
Container(WEB容器),在WEB
Container中連接資料庫,從資料庫中取出數據等一系列操作後動態拼湊頁面的展示內容,拼湊頁面的展示內容後,把所有的展示內容交給WEB伺服器,之後通過WEB伺服器將內容發送回客戶端瀏覽器進行解析執行。
為什麼需要web伺服器?(web server)
1)不管什麼web資源,想被遠程計算機訪問,都必須有一個與之對應的網路通信程序,當用戶來訪問時,這個網路通信程序讀取web資源數據,並把數據發送給來訪者。
2)WEB伺服器就是這樣一個程序,它用於完成底層網路通迅,處理http協議。使用這些伺服器,We應用的開發者只需要關注web資源怎麼編寫,而不需要關心資源如何發送到客戶端手中,從而極大的減輕了開發者的開發工作量。
常用動態web資源開發技術:JSP/Servlet、ASP、PHP等。
三、關於兩者區別的簡單直接的描述
1、靜態頁面就是設計者把頁面上所有東西都設定好、做死了,然後放上去,不管是誰在任何時候看到的頁面內容都是一樣的,一成不變(除非手動修改頁面內容)。靜態html頁面文件,可以直接用本地的瀏覽器打開。比如:file:///Users/Phil/Documents/DevOps/HBuilderProjects/testJSP/index.html。
2、動態頁面的內容一般都是依靠伺服器端的程序來生成的,不同人、不同時候訪問頁面,顯示的內容都可能不同。網頁設計者在寫好伺服器端的頁面程序後,不需要手工控制,頁面內容會按照頁面程序的安排自動更改變換。
C. java e.printStackTrace() 什麼意思呢
printStackTrace()方法的意思是:在命令行列印異常信息在程序中出錯的位置及原因。
用在
try{
BufferedReader input=new BufferedReader(new InputStreamReader(System.in));
String inputLine=input.readline();
int i=Integer.parseInt(inputLine).intValue();
}
catch(Exception e){
e.printStackTrace() ;
}
當執行捕獲到異常,就會執行catch中的語句
求採納
D. java靜態資源(靜態方法,靜態屬性)是程序一運行就載入到jvm中,還是當被調用的時候才進行載入呢
當類第一次被調用時載入(靜態方法,靜態屬性的載入就是類載入) 。
1、類中的靜態屬性會被加入到類對象(也可以叫做類的模板,是類的描述) 的構造器中,靜態方法也會被加入到類對象中。
2、當第一次使用類時,JVM會通過類載入器,載入類對象,從而初始化靜態屬性,並裝入類的方法,包括靜態方法和實例方法(方法不會被調用,只是載入,從這個意義上來說,靜態方法和實例方法是類似的)。
3、當創建類的實例對象時,JVM會調用類的構造器,從而初始化類的屬性。
(4)java靜態文件擴展閱讀:
類(包括靜態方法、屬性)載入過程:
一、載入。
根據一個類的全限定名(如cn.e.h.test.HelloWorld.class)來讀取此類的二進制位元組流到JVM內部。
將位元組流所代表的靜態存儲結構轉換為方法區的運行時數據結構(hotspot選擇將Class對象存儲在方法區中,Java虛擬機規范並沒有明確要求一定要存儲在方法區或堆區中)轉換為一個與目標類型對應的java.lang.Class對象。
二、連接。
1、驗證。
驗證階段主要包括四個檢驗過程:文件格式驗證、元數據驗證、位元組碼驗證和符號引用驗證;
2、准備。
為類中的所有靜態變數分配內存空間,並為其設置一個初始值(由於還沒有產生對象,實例變數將不再此操作范圍內);
3、解析。
將常量池中所有的符號引用轉為直接引用(得到類或者欄位、方法在內存中的指針或者偏移量,以便直接調用該方法)。這個階段可以在初始化之後再執行。