[Dúvida] Programação Web em 3 Camadas (MVC) Servlets, JSP, Façade e Hibernate

4 respostas
rafaelob

Pessoal,

Estou começando um projeto de faculdade de Engenharia de Software II, a professora nos informou que é proibido a utilização de qualquer framework que abstraia a programação em 3 camadas(Liberou o Hibernate que é para persistência dos dados). Eu confesso que já programei para web, mas nunca me preocupei com essa programação em camadas e utilização de façades para produzir um fraco acomplamento. Pois bem…

Eu tenho algumas dúvidas:

Minhas views seriam minhas páginas jsp, certo? a comunicação entre a view e o controller seria através de um “Façade”.

O servlet seria um façade ou um controller?? eu teria um servlet para cada página jsp, ou um servlet para todos e um controller para cada view?.

Os models seriam meus “Beans” certo? e o Hibernate já faz a persistência dos dados, gravando os objetos que têm atributos em várias tabelas diferentes no Banco de Dados, correto? Eu teria um façade para comunicação do controller com os models também, não é??

Ou o servlet não tem nada a ver com Controller e Façade, sendo o servlet apenas uma “ponte” de comunicação?

Estou estudando mais sobre o assunto, confesso que estou meio perdido com esses conceitos, se alguém puder dar uma orientação eu agradeceria.

4 Respostas

rafaelob

Outra dúvida, na camada MODEL ficaria meus objetos da minha classe e também as classes DAO(responsáveis por gravar o objeto no B.D) ?? e o controller chamaria o DAO?

Att,

rafaelob

Ou as minhas classes ficariam no controller.valueObject ??

Outra dúvida, quantos Servlets é indicado para eu utilizar na minha WEBAPP? um? mais de um?? fiquei pensando de como seria essa aplicação… Se eu utilizasse um Servlet só para todas as minhas páginas jsp, eu teria que ter um código muito maior, pois estaria tratando diferentes casos… Outra questão é, como eu faço para quando eu clickar em um link, chamar outro servlet?

tou meio que perdido sobre isso …

V

Vamos organizar a sua idéia de MVC

VIEW = Camada de apresentação, é aquilo que chega lá para o seu usuário dentro da sua situação seria suas .jsp (ou .html)
CONTROLLER = Faz o controle de aplicação, dentro de desenvolvimento Web utilizamos as servlet.
MODEL = Lógica do Negócio, aqui entraria a suas classes java (pojo) e suas classes de persistência de dados.

Até aonde vai meu pequeno conhecimento, o uso dos fachades são para “camuflar” a complexidade da camada de negócio. O fachade seria uma classe java que ficaria entre o Controller e o Model.

Sobre quantidade de servlet, nada impede de você fazer uma servlet para cada botãozinho que o usuário for clicar… Mas seria BEM interessante você dividir seu sistema em Casos de Uso e então criar uma servlet para fazer o controle de cada um.

Sim. Se você usar fachade não.

rafaelob

Olá,

Primeiramente obrigado pela resposta.

Bem, a professora nos explicou que a comunicação entre o controller e a View seria através de um façade, assim como a comunicação do Model com o Controller seria através de um façade. Eu até entendi que se utilizar um façade para a comunicação com a view, deixaria o sistema portável tanto para WEB como para Desktop, pois eu definiria um cojunto de métodos que seriam acessíveis a view, com isso eu abstrairia a complexidade do sistema em si.

Então nesse caso o Servlet também seria da camada de apresentação, ele chamaria meu “façade” que se comunicaria com os controllers … tenho mais algumas dúvidas:

Poderia fazer o façade uma interface e colocar para o servlet implementá-la , ou é melhor não?? Minhas classes “Beans” ficariam no controller ou no Model??

Obrigado!

Criado 25 de novembro de 2010
Ultima resposta 26 de nov. de 2010
Respostas 4
Participantes 2