Mvc

4 respostas
R

Fala galera…

vi numa apresentacao de um dos seminarios da Oracle q o padrao MVC utiliza um servlet Controller…mas como funciona esse servlet, exatamente??
ele trata as regras de negocio da aplicacao??

por ex, minha aplicacao tem 4 camadas:

  • camada JSP (apresenta forms e recebe dados)
  • camada servlet (regras de negocio e chamadas de operacoes de BD)
  • camada de classes com operacoes de BD
  • BD

como ficaria minha aplicacao com o MVC??

valew

4 Respostas

danieldestro

Bom, imagino que cada servlet de sua aplicação seja responsável por uma função do sistema, por exemplo: cadastro, busca, etc.

Imagine que vc tivesse então APENAS UM Servlet, que soubesse qual a sua requisição e delegasse a execução do negócio pra classe responsável. Esse seria o Servlet Controller.

Tá difícil? Então, vamos lá:

Imagine que todas os seus htmls (e jsps) submetessem um request pra um mesmo servlet, no caso o nosso Controller. E para ele você passasse alguns parâmetros de controle, mais os dados para processamento.

Num cadastro, o form do request passaria os dados cadastrais (nome, endereço, etc) e mais uns campos (hidden) de controle (action). Vamos supor que a action se chame CADASTRO. Seu Servlet controller lê ACTION=CADASTRO e sabe quem deve executar quando essa action foi requisitada. Esse mapeamento estaria configurado ou num xml (web.xml) ou qualquer outro lugar.

Então o Controller chamaria e executaria a classe responsável pelo Cadastro, passando pra esse classe de negócio os dados cadastrais.

Isso é um modelo simples do Controller do modelo MVC2 (para web).

Entendido?

R

mais ou menos Daniel…

no caso, cada servlet meu implementa tanto o cadastro, a lista e a exclusao…depende do controle q ele recebe…

entao eu teria um servlet central chamando uma classe responsavel por cada JSP??

rarondini

Apenas complementado o seu caso…

Servlet não deve ter regra de negocio e chamada direta a banco de dados. Isso deve ficar por conta de EJB’s, DAO, etc…

O Servlet deve servir apenas para tratar requisições, por isso e chamado de controller.

danieldestro

Rafael,

Transforme esses seus Servlet em classes puramente de negócios, independente de ambiente de excução, sem utilizar APIS para web e etc. Pois suas classes poderiam ser reutilizadas em outros ambientes. E todas essas classes implementem uma classe, por exemplo ClasseNegocio, com o método execute();

Ai, para o Servlet que fazia o cadastro, seu controller faria mais ou menos isso.

String actionClass = getActionClass( action ); //implemente este método

ClasseNegocio cn = Class.forName( actionClass ).newInstance();

cn.execute( dados );

Esta é uma forma MUITO simples de se fazer isso, apenas pra te ilustrar como seria. Mas se você não quer se dar ao trabalho, use o Struts, que é um Controller, muito utilizado.

Criado 14 de maio de 2003
Ultima resposta 14 de mai. de 2003
Respostas 4
Participantes 3