问题描述
在servlert的doGet()方法中调用ServletConfig.getInitParameterNames()方法由于ServletConfig是一个借口,所有会调用其子类GenericServlet,而该方法的实现如下:publicEnumerationgetInitParameterNames(){returngetServletConfig().getInitParameterNames();}publicServletConfiggetServletConfig(){returnconfig;}它返回的又是调用config对象的getInitParameterNames();,怎么看都觉得矛盾啊,不知道是用了什么设计模式还是什么牛逼的用法。求大神门指导啊!!!
解决方案
解决方案二:
我把工程附加了tomcat6.0的源码,debug进去发现进入了publicfinalclassStandardWrapperFacade这个类,查看里面的实现publicEnumerationgetInitParameterNames(){returnconfig.getInitParameterNames();}仍然是这个方法,实在是不解
解决方案三:
GenericServlet是抽象类,你调用getServletConfig()方法,返回的是具体实现类,不是GenericServlet
时间: 2024-11-10 09:42:36