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