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