Maven項目- Servlet的抽取和優化 java.lang.NoSuchMethodException 的解決方法


  優化servlet,減少servlet的數量,便於開發與維護。現在是一個功能一個Servlet,將其優化為一個模塊一個Servlet,BaseServlet的抽取和優化,相當於在數據庫中一張表對應一個Servlet,在Servlet中提供不同的方法,完成用戶的請求。

 

異常顯示:沒有這樣的方法。

問題所在:方法的聲明是protected受保護的,

解決方法:

  1. 不好的方式: 聲明為protected的方法要想被訪問到,獲取方法的時候我們要忽略訪問修飾符,用

Method method = this.getClass().getDeclaredMethod(methodName, HttpServletRequest.class, HttpServletResponse.class);

忽略訪問權限修飾符獲取方法,然后暴力反射method.setAccessible(true);

這樣做包括私有的方法都可以獲取到,並且可以執行,但是這樣的做法不好,因為在servlet里面一些私有的方法並不像被別人

訪問到。

  

 

 2. 最好的方式: 把這些方法的權限修飾符修改成public就好了。

       

       

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM