Diversos métodos em um Controlador

galera
estou com uma dúvida de como chamar diversos métodos diferentes em um único Controlador, utilizando servlets/jsp

Digamos que eu quisesse que 2 requisições diferentes fossem tratadas no mesmo Controlador (um servlet)

O método que sempre será chamado será o doPost(), logo ele só poderá atender 1 tipo de solicitação
Minha dúvida é:
Eu terei sempre que ter 1 Controlador diferente para cada requisição?
Ou existe alguma boa maneira de fazer com que 1 Controlador seja responsável por diferentes tipos de requisição?

Você pode fazer assim:

[code]public void doPost() {

if (algumaCoisa) {
foo();
} else {
bar();
}

}

public void foor() {

}

public void bar() {

}[/code]

Dessa forma você consegue delegar uma requisição para um determinado método.

bah cara
aí é que tá
if else é uma coisa que eu não queria usar

Tenta criar um controlador pai (Interface), com um método principal , por exemplo execute(), que vai tratar sua requisição. Cria várias outras classes que implementem este método. Pega a requisição da página, e através de reflection instancia a classe específica pelo nome da requisição.

Não dei nenhum detalhe, mas dá para ter uma idéia. Dá uma olhada no padrão de projeto Command (GoF) ou Intercepting Filter (J2EE). Mesmo assim não dá para ter um controlador só, mas mais vai ser transparente porque ele vai saber qual vai utilizar em tempo de execução.

cara, o que vc quer é exatamente o que o DispatcherAction do Struts faz…usando Servlet/JSP eu faria um esquema de “ações” enviadas como parametro na url e no seu Servlet vc trata com if/else…se vc quer elegancia na sua aplicação para não usar if/else, tente algum framework…pq com Servlet/JSP não vai dar não…

Valeu!