Java和JSP編程應(yīng)該注意的六個常見問題
1.對應(yīng)String類型的對象使用println()方法時,如果對象為null,將打印null而不是引發(fā)NullPointerException,由此引用的問題是容易造成錯覺,對于以后對字符串的操作容易引起問題。
2.引發(fā)NullPointerException異常,主要原因是沒有對對象的存在性進行驗證,在jsp編程中經(jīng)常出現(xiàn):if (request.getParameter(“username”).equals(“xxx”))、out.println(session.getAttribute(“record”))等。解決這個問題的方法是在使用前進行判空比較:
if (request.getParameter(“username”)!=null) {if if (request.getParameter(“username”). equals(“xxx”))…} |
4.引發(fā)StringIndexOutOfBoundsException異常:主要原因是使用String的substring()、charAt()等方法,而字符串的長度不夠,就會引發(fā)此異常;在字符串為null時也會引發(fā)NullPointerException。解決的方法是判空,判斷長度或者轉(zhuǎn)換為字節(jié)數(shù)組??紤]到這些操作很多,可以將之封裝到j(luò)avabean中。
5.引發(fā)NoClassDefFoundError錯誤,主要原因是類路徑或者類文件放置錯誤,類文件的放置要符合服務(wù)器的要求。
6.引發(fā)java.lang.Error錯誤,主要原因是對系統(tǒng)所訪問外部資源,未執(zhí)行關(guān)閉操作,導(dǎo)致外部資源大量浪費,最終可能導(dǎo)致系統(tǒng)無法正常運行;對系統(tǒng)所訪問的外部資源關(guān)閉次數(shù)太多,外部系統(tǒng)無法正常處理;所系統(tǒng)訪問的外部資源出現(xiàn)異常情況。
解決的方法是:訪問外部資源前,首先檢查該資源(如數(shù)據(jù)庫)是否可正常連接或操作;訪問外部資源時,如果進行了連接,一定進行關(guān)閉操作,并僅進行一次關(guān)閉操作;盡量在同一操作中共享外部資源,以減少該操作對資源的消費,提高程序的執(zhí)行效率。
評論