Para que uma interface execute uma determinada função ela dever ser implementada em uma classe. Na API javax.servlet temos várias interfaces: ServletRequest, ServletResponse, RequestDispatcher, entre outras.
No código:
No meu entendimento, parece-me que ainda existe uma contradição, pois mesmo entendendo que uma interface possa ser referenciada, como é que eu executo um método dessa interface se ele não foi implementado.
OBS: Pelo que eu conheço da API javax.servlet não existe uma implementação padrão para as interfaces RequestDispatcher, HttpServletRequest, HttpServletResponse, e outras mais.
Vc obviamente não sabe o básico de Java. Nem de Orientação a Objetos. Que tel ler alguma documentação, hein??
Quando vc pede um requestDispatcher, na verdade vc está recebendo uma implementação dele. A idéia de uma interface é vc justamente não querer saber qual é a implementação, desde que ela contenha os métodos que você precisa.
Quando vc faz um Servlet, vc implementa HttpServlet, certo?? Isso é pro tomcat poder usar a sua classe sem conhecer o código dela de antemão. Ele sabe que vc vai ter um método assim:
public void service(HttpServletRequest, HttpServletResponse);
Pra ele não interessa a implementação, desde que ele seja capaz de chamar o seu método.
PS: Tiago, você tem razão. É muito mais fácil jogar as perguntas no fórum. O problema da documentação é que elas tem tudo; basta procurar. No entanto, não fosse essa “preguiça”, todos nós encontraríamos todas as soluções. Seria apenas uma questão de tempo. E nesse caso, para que precisaríamos nós de fóruns?