java哪个类提供getRequestDispatcher()方法的实现
ServletRequest
接口的getRequestDispatcher()
方法返回RequestDispatcher
的对象
我知道getRequestDispatcher()
方法在接口ServletRequest
中。由于它是一个接口,因此不会定义方法
此外,在另一个接口中,{em6}是继承的。但是作为一个接口,它不会定义它的方法
现在,在仔细检查JavaDocs之后,我找不到任何实现这两个接口的类,并且定义了getRequestDispatcher()
方法
所以我想知道他们是从哪里定义这个方法的
提前谢谢
# 1 楼答案
对于jetty v6,它是
org.mortbay.jetty.servlet.ServletHandler
,返回org.mortbay.jetty.servlet.Dispatcher
实例这就是Dispatcher的
forward
工作原理:# 2 楼答案
在TOMCAT容器的情况下,实现的类是
org.apache.catalina.connector.RequestFacade
。 实施基本上取决于容器&;每个容器都有自己的实现,遵循J2EE规范使用以下代码检查实现类:-
输出:-
org.apache.catalina.connector.RequestFacade
您可以看到这个类office Dochere,并可以检查它是否实现了
interface javax.servlet.ServletRequest
及其方法,如getRequestDispatcher()
等# 3 楼答案
每个容器(Tomcat、Jetty等)都有自己的类来实现HttpServletRequest。此类实现接口的所有方法。该类的一个实例由容器传递给servlet
如果你真的很好奇,加上
到您的servlet,您将知道具体类的名称
但实际上,你不需要知道。您需要知道的是,它实现了HttpServletRequest接口,从而实现了javadoc和规范中描述的契约