java.lang.reflect.InvocationTargetException 並且同時帶有空指針異常,
該錯誤來源於,實現用戶自動登錄功能時:登錄界面,當輸入用戶名和密碼后,沒有勾選自動登錄按鈕,結果在UserServlet中實現方法時,只要有getParameter(“autologin”);就報錯,
分析:用過濾器實現對getParameter方法包裝設計增強時,沒有加入空指針異常判斷。所以在servlet方法中使用自定義的getParameter時,當用戶沒有勾選自動登錄按鈕,獲取到的是空。所以會報此錯誤。
解決:在對getparameter方法包裝設計進行功能增強時,加入對獲取的參數進行空指針判斷。或者把異常拋掉一個大異常catch(Exception e){}
class MyRequest extends HttpServletRequestWrapper { public MyRequest(HttpServletRequest request) { super(request); } @Override public String getParameter(String name) {
String word = super.getParameter(name); try { if (word == null) { return null; } word = new String(word.getBytes("ISO-8859-1"), "UTF-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } return word; }} |
異常代碼截圖: