优化servlet,减少servlet的数量,便于开发与维护。现在是一个功能一个Servlet,将其优化为一个模块一个Servlet,BaseServlet的抽取和优化,相当于在数据库中一张表对应一个Servlet,在Servlet中提供不同的方法,完成用户的请求。

 

异常显示:没有这样的方法。

Maven项目- Servlet的抽取和优化 java.lang.NoSuchMethodException 的解决方法

问题所在:方法的声明是protected受保护的,

Maven项目- Servlet的抽取和优化 java.lang.NoSuchMethodException 的解决方法

解决方法:

  1. 不好的方式: 声明为protected的方法要想被访问到,获取方法的时候我们要忽略访问修饰符,用

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

忽略访问权限修饰符获取方法,然后暴力反射method.setAccessible(true);

这样做包括私有的方法都可以获取到,并且可以执行,但是这样的做法不好,因为在servlet里面一些私有的方法并不像被别人

访问到。

  Maven项目- Servlet的抽取和优化 java.lang.NoSuchMethodException 的解决方法

 

 2. 最好的方式: 把这些方法的权限修饰符修改成public就好了。

       Maven项目- Servlet的抽取和优化 java.lang.NoSuchMethodException 的解决方法

       Maven项目- Servlet的抽取和优化 java.lang.NoSuchMethodException 的解决方法

 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-06-01
  • 2021-11-22
  • 2022-12-23
  • 2021-05-05
  • 2022-12-23
猜你喜欢
  • 2021-06-27
  • 2021-03-30
  • 2022-12-23
  • 2021-06-20
  • 2021-09-23
  • 2021-11-17
  • 2022-12-23
相关资源
相似解决方案