Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

SERVLETS: FUNDAMENTOS DE JAVA NA WEB - conclusão do entendimento

Pessoal,

Após concluir o curso, fiz um resumo da estrutura do projeto para verificar se o meu entendimento está correto. Alguém poderia checar se o meu raciocínio está correto? Temos a tela principal, index.jsp, onde eu faço login, logou, incluo e pesquiso empresas. Ao clicar em um dos botões da página principal, esta chama a interface Tarefa, passando os parâmetros; A interface Tarefa chamará a classe Controler (essa linkada à ação "executa", pelo comando @WebServlet(urlPatterns="/executa")), passando os parâmetros; A classe Controler, de acordo com os parâmetros recebidos, chamará as classes BuscaEmpresa, NovaEmpresa ou Login; Me parece que a execução da classe Logout é um pouco diferente, se alguém puder esclarecer também eu agradeço. Mario

1 resposta
solução!

Olá Mario,

A ideia do Controller é receber as requisições da view e redirecionar para a classe correta. Nesse caso, a tarefa está apenas abstraindo o comportamento dessas classes para ela poder ser genérica, ou seja, executar qualquer tarefa que seja passada. Sendo assim, quem "chama" (executa) a tarefa é o controller, e não vice-versa como você cita.

A anotação @WebServlet("/executa") significa que qualquer requisição feita para este endereço irá ser processado por ele. Sendo assim, qualquer submit feito na view que envie para /executa irá cair nessa servlet. A tarefa não influencia nesse ponto. O controller sabe qual tarefa executar consultando o parâmetro que está vindo no formulário (POST).

É isso que ocorre no logout, ele acessa a servlet "controller" passando no formulário POST que a tarefa é deslogar, e o controller sabe direcionar corretamente para essa atividade.

Att.