1. 程式人生 > 其它 >idea部署專案步驟以及bug出現的原因以及解決方案,類報紅,亂碼,404,500等

idea部署專案步驟以及bug出現的原因以及解決方案,類報紅,亂碼,404,500等

技術標籤:筆記ideajsp

解決bug

專案無法正常編譯
	1、jdk報錯, String  Integer java自帶類報錯得,jdk版本不對應,jdk沒有配好 
			重新更換 jdk版本
	2、jar報錯,沒見過得類,屬於外部jar沒有載入,
			一種是tomcat相關得,通過依賴直接新增;
			lib資料夾中得jar,需要手動匯入
	3、將各個資料夾,設定成對應得格式
			java檔案放在藍色得資料夾中,通過make dir as  ----> Sources root 
			資原始檔 放在 五條槓得資料夾下,通過 make dir as ---> Resources root
			web頁面相關內容,放在藍點資料夾下,通過配置專案得 / 所代表得位置
	4、專案中存在亂碼:
		1. 專案中,類中得中文出現亂碼; 你讀取得編碼 和 編寫時得編碼用得不一致;專案右下腳有一個File encoding 將檔案編碼設定為其他型別的,然後convert,重新載入專案頁面;
        2. 資料庫中,顯示的中文出現亂碼;
        	1、建立資料庫使用的編碼格式有問題,需要修改資料庫中,資料庫的編碼、資料表的編碼;
        	2、插入的資料編碼問題,使用記事本,將正確編碼格式的檔案複製全部內容,貼上到查詢中,進行執行;
        3. 頁面中,顯示的中文出現亂碼;
        	1、伺服器中傳遞過來的資料亂碼
        		request:request.setCaracterEncoding("utf-8");
        		response:設定展示給頁面的資料是 utf-8格式的
        			response.setContentType("text/html;charset=utf-8");
        	2、從資料庫中讀取的資料,就是亂碼的
        		設定資料庫連線的編碼格式,jdbc:mysql://localhost:3306/db2?characterEncoding=utf8
        	3、頁面展示的資料是錯誤的編碼格式,導致亂碼
        		通過瀏覽器右鍵,設定當前頁面的載入編碼格式
        		
專案執行問題
	1、404 找不到頁面,
		servlet + jsp :需要檢視web.xml 看路徑和類是否相互繫結  @WebServlet("/login")
		ssm 專案:需要檢視springmvc.xml 配置檔案  中間有一個檢視解析器 規定了前後綴,檢視這一個;
		專案打包問題,將整個打包在伺服器釋出,tomcat ,idea需要配置路徑
	2、500伺服器錯誤,
		一般會有Exception異常產生;java程式設計師 解決異常;
		

Bug

Java中的異常	Throwable
	1、錯誤	Error	程式中無法自己解決,需要程式設計師去解決;
		是程式設計師無法通過程式去控制的;比如,專案建立物件,開闢記憶體空間,一旦把記憶體全部佔滿,此時會出現錯誤,記憶體溢位錯誤;
	
	2、異常	Exception	程式中可以自己解決的問題,可以提前預知到,然後給出解決方法;
		if( 出現異常 boolean ){... }else{... } 
		寫法大致相同
		try{   }catch( 異常 ){  }
	異常就是程式中,出現的各種問題:
			.java -javac-> .class -java-> 執行
		編譯異常:  checked Exception
			javac階段出現的異常:編譯期異常;
			整合開發軟體,會自動編譯.java檔案,當寫完之後自動編譯成.class檔案,
			兩種內容全部都是編譯期的異常:
				IOException IO流 Input/Output方向 	如果沒有當前路徑,所要做的操作	
				SQLException 資料庫 並不知道資料庫能不能連線成功 
		執行異常:	runtime Exception
    		java階段出現的異常:執行期異常
    			NullPointerException: 面向物件程式設計,使用一個空的物件去做事,報此異常;
    			ClassCastException:類轉換異常,
三、java程式中幾種常見的異常以及出現此異常的原因
1、java.lang.NullpointerException(空指標異常)
	原因:這個異常經常遇到,異常的原因是程式中有空指標,即程式中呼叫了未經初始化的物件或者是不存在的物件。
經常出現在建立物件,呼叫陣列這些程式碼中,比如物件未經初始化,或者圖片建立時的路徑錯誤等等。對陣列程式碼
中出現空指標,是把陣列的初始化和陣列元素的初始化搞混淆了。陣列的初始化是對陣列分配空間,而陣列元素的
初始化,是給陣列中的元素賦初始值

2、 java.lang.ClassNotFoundException(指定的類不存在)
	原因:當試圖將一個String型別資料轉換為指定的數字型別,但該字串不滿足數值型資料的要求時,就丟擲這個異
常。例如將String型別的資料"123456"轉換為數值型資料時,是可以轉換的的。但是如果String型別的資料中包含了
非數字型的字元,如123*56,此時轉換為數值型時就會出現異常。系統就會捕捉到這個異常,並進行處理

3、java.lang.ClassNotFoundExceptio(指定的類不存在)
	原因:是因為類的名稱和路徑不正確,通常都是程式試圖通過字串來載入某個類的時候可能會引發異常。例如:
呼叫Class.forName()、或者呼叫ClassLoad的finaSystemClass()、或者是LoadClass()時出現異常

4、java.lang.IndexOutOfBoundsException(陣列下標越界異常)
	原因:檢視程式中呼叫的陣列或者字串的下標值是不是超出了陣列的範圍,一般來說,顯示呼叫陣列不太容易出這
樣的錯,但隱式呼叫就有可能出錯了,還有一種情況,是程式中定義的陣列的長度是通過某些特定方法決定的,不是
事先宣告的,這個時候可以先檢視一下陣列的length,以免出現這個異常

5、java.lang.IllegalArgumentException(方法的引數錯誤)

	例如g.setColor(int red,int green,int blue)這個方法中的三個值,如果有超過255的會出現這個異常,如果程式中存在這個異常,就要去檢查一下方法呼叫中的引數傳遞或引數值是不是有錯

6、java.lang.IllegalAccessException(沒有訪問許可權)
	當程式要呼叫一個類,但當前的方法即沒有對該類的訪問許可權便會出現這個異常。如果程式中用了Package的情況下
有可能出現這個異常

7、java.lang.ArithmeticException(數學運算異常)
	當數學運算中出現了除以零這樣的運算就會出這樣的異常。

8、java.lang.ClassCastException(資料型別轉換異常)
	當試圖將對某個物件強制執行向下轉換,但該物件又不可轉換或又不可轉換為其子類的例項時將出現該異常

9、 java.lang.FileNotFoundException(檔案未找到異常)
	當程式開啟一個不存在的檔案來進行讀寫時將會引發該異常。該異常由FileInputStream,FileOutputStream,
RandomAccessFile的構造器宣告丟擲,即使被操作的檔案存在,但是由於某些原因不可訪問,比如開啟一個只有只讀許可權的檔案並向其中寫入資料,以上構造方法依然會引發異常

10、java.lang.ArrayStoreException(陣列儲存異常)
	當試圖將型別為不相容型別的物件存入一個Object[]陣列時將引發異常

11、java.lang.NoSuchMethodException(方法不存在異常)
	當程式試圖通過反射來建立物件,訪問(修改或讀取)某個方法,但是該方法不存在就會引發異常。

12、 java.lang.EOFException(檔案已結束異常)
	當程式在輸入的過程中遇到檔案或流的結尾時,引發異常。因此該異常用於檢查是否達到檔案或流的結尾

13、java.lang.InstantiationException(例項化異常)
	當試圖通過Class的newInstance()方法建立某個類的例項,但程式無法通過該構造器來建立該物件時引發。Class物件表示一個抽象類,介面,陣列類,基本型別 。該Class表示的類沒有對應的構造器。

14、java.lang.InterruptedException(被中止異常)
	當某個執行緒處於長時間的等待、休眠或其他暫停狀態,而此時其他的執行緒通過Thread的interrupt方法終止該執行緒時丟擲該異常。

15、java.lang.CloneNotSupportedException (不支援克隆異常)
	當沒有實現Cloneable介面或者不支援克隆方法時,呼叫其clone()方法則丟擲該異常

16、java.lang.OutOfMemoryException (記憶體不足錯誤)
	當可用記憶體不足以讓Java虛擬機器分配給一個物件時丟擲該錯誤

17、java.lang.NoClassDefFoundException (未找到類定義錯誤)
	當Java虛擬機器或者類裝載器試圖例項化某個類,而找不到該類的定義時丟擲該錯誤