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就好了。

       

       

原文地址:https://www.cnblogs.com/wqkeep/p/10412978.html