Apresentação Java Web Si Ufc Quixadá - MVC

2.484 visualizações

Publicada em

Uma rápida noção de MVC!

Publicada em: Tecnologia, Educação
0 comentários
3 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
2.484
No SlideShare
0
A partir de incorporações
0
Número de incorporações
34
Ações
Compartilhamentos
0
Downloads
86
Comentários
0
Gostaram
3
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Apresentação Java Web Si Ufc Quixadá - MVC

  1. 1. JAVAWEB Introdução a Java volta para web! Zarathon Maia – zarathon@ufc.br
  2. 2. MVC – MODEL, VIEW, CONTROLLER <ul><li>Model: As classes que representam suas entidades, e as que te ajudam a armazenar e buscar os dados, são chamadas de Modelo. </li></ul><ul><li>View: Generalizando o modelo acima, podemos dar nomes a cada uma das partes dessa nossa arquitetura. Quem é responsável por apresentar os resultados na página web é chamado de Apresentação. </li></ul><ul><li>Controller: A servlet (e auxiliares) que faz os dispatchs para quem deve executar determinada tarefa é chamada de Controladora. </li></ul>
  3. 3. MVC – MODEL, VIEW, CONTROLLER <ul><li>Esses três formam um padrão arquitetural chamado de MVC, ou Model View Controller. Ele pode sofrer variações de diversas maneiras. O que o MVC garante é a separação de tarefas, facilitando assim a reescrita de alguma parte, e a manutenção do código. </li></ul><ul><li>O famoso Struts ajuda você a implementar o MVC, pois tem uma controladora já pronta, com uma série de ferramentas para te auxiliar. O Hibernate pode ser usado como Model, por exemplo. E como View você não precisa usar só JSP, pode usar a ferramenta Velocity, por exemplo. </li></ul>
  4. 4. MVC – MODEL, VIEW, CONTROLLER
  5. 5. MVC – MODEL, VIEW, CONTROLLER <ul><li>Request Dispatcher: </li></ul><ul><ul><li>Poderíamos melhorar a nossa aplicação se trabalhássemos com o código java na servlet e depois o código html em uma página jsp. </li></ul></ul><ul><ul><li>A api da servlet nos permite fazer tal redirecionamento. Basta conhecermos a url que queremos acessar e podemos usar o que fora chamado de RequestDispatcher para acessar outro recurso web, seja esse recurso uma página jsp ou uma servlet: </li></ul></ul><ul><ul><li>RequestDispatcher rd = request.getRequestDispatcher(“/contatoadicionado.jsp”); </li></ul></ul><ul><ul><li>rd.forward(request,response); </li></ul></ul><ul><li>Agora podemos facilmente executar a lógica de nossa aplicação web em uma servlet e então redirecionar para uma página jsp, onde você possui seu código html. </li></ul>
  6. 6. CRIANDO NOSSA FRAMEWORK MVC <ul><li>Primeiramente iremos criar uma interface que terá que ser assinada por todas as nossas lógicas de negócio. </li></ul><ul><li>public interface LogicaDeNegocio { </li></ul><ul><li>void execute(HttpServletRequest req, HttpServletResponse res) throws Exception; </li></ul><ul><li>} </li></ul><ul><li>Agora vamos precisar criar uma lógica qualquer, no caso a seguir vou criar uma lógica que irá receber um nome e vai passá-lo para uma página que exibira a mensagem de MVC-OK e o nome passado na primeira página. </li></ul>
  7. 7. CRIANDO NOSSA FRAMEWORK MVC <ul><li>public class TestaMVC implements LogicaDeNegocio { </li></ul><ul><li>public void execute(HttpServletRequest req, HttpServletResponse res) throws Exception { </li></ul><ul><li>System.out.println(“Executando a logica e redirecionando...”); </li></ul><ul><li>RequestDispatcher rd = req.getRequestDispatcher(&quot;/mvc-ok.jsp&quot;); </li></ul><ul><li>rd.forward(req, res); </li></ul><ul><li>} </li></ul><ul><li>} </li></ul>
  8. 8. CRIANDO NOSSA FRAMEWORK MVC <ul><li>Bom, já criamos nossa interface que deverá ser assinada por todas nossas classes de lógica e criamos uma classe que assina esse método e redireciona nossa aplicação para a página “mvc-ok.jsp”. </li></ul><ul><li>Vamos então criar o nosso controlador de requisições. O nosso controlador de requisições, nada mais é do que um servlet que executa determinada classe lógica de acordo com uma varíavel que será passada para ele. Segue abaixo o código comentado do nosso Servlet Controlador! </li></ul>
  9. 9. CRIANDO NOSSA FRAMEWORK MVC <ul><li>try { </li></ul><ul><li>/*Definindo String que receberá o nome da minha lógica a ser chamada </li></ul><ul><li>*Detalhe: O negocio será passado pelo jsp, através do parâmetro &quot;negocio&quot; */ </li></ul><ul><li>String negocio = request.getParameter(&quot;negocio&quot;); </li></ul><ul><li>/*Definindo String que conterá o caminho físico da minha lógica </li></ul><ul><li>*O caminho físico é definido pelo nome.do.pacote.Classe */ </li></ul><ul><li>String nomeDaClasseDeNegocio = &quot;br.com.biloto.servlets.&quot; + negocio; </li></ul><ul><li>/*Criando um objeto do tipo Class, que gerá uma classe momentânea </li></ul><ul><li>*essa classe criada é uma cópia da classe estabelecia pela String anterior*/ </li></ul><ul><li>Class classeLogicaMomentanea = Class.forName(nomeDaClasseDeNegocio); </li></ul><ul><li>//Verificando se a classe momentânea assina a interface LogicaDeNegocio </li></ul><ul><li>if (!LogicaDeNegocio.class.isAssignableFrom(classeLogicaMomentanea)) { </li></ul><ul><li>throw new Exception(&quot;A classe não assina a interface LogicaDeNegocio.&quot;); </li></ul><ul><li>} </li></ul><ul><li>//Criando um objeto da classe momentânea criada </li></ul><ul><li>LogicaDeNegocio objeto = (LogicaDeNegocio) classeLogicaMomentanea.newInstance(); </li></ul><ul><li>//Executando a lógica da classe </li></ul><ul><li>objeto.execute(request, response); </li></ul><ul><li>} catch (Exception e) { </li></ul><ul><li>System.out.println(&quot;Ocorreu um erro na execução!&quot;); </li></ul><ul><li>} </li></ul>
  10. 10. CRIANDO NOSSA FRAMEWORK MVC <ul><li>Pronto! Criamos nossa controladora, agora é só criar as nossas classes lógicas e não esquecer de no jsp o parâmetro “negocio” com seu respectivo valor, valor este que terá que ser o nome da classe lógica. </li></ul><ul><li>Vamos ao nosso teste! </li></ul><ul><li>Iremos criar antes de tudo um arquivo jsp chamado de mvc-ok, que contera a mensagem de ok e um campo que irá espera o parâmetro “nome” que virá de outro canto. Ver código no proximo slide. </li></ul>
  11. 11. CRIANDO NOSSA FRAMEWORK MVC <ul><li><%@page contentType=&quot;text/html&quot; pageEncoding=&quot;UTF-8&quot;%> </li></ul><ul><li><!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot; </li></ul><ul><li>&quot;http://www.w3.org/TR/html4/loose.dtd&quot;> </li></ul><ul><li><html> </li></ul><ul><li><head> </li></ul><ul><li><meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot;> </li></ul><ul><li><title>MVC-OK -- ${param.nome}</title> </li></ul><ul><li></head> </li></ul><ul><li><body> </li></ul><ul><li><h2>Minha MVC está funcionando!</h2> </li></ul><ul><li><h3>Valeu mesmo, ${param.nome}!!!</h3> </li></ul><ul><li></body> </li></ul><ul><li></html> </li></ul><ul><li>//Detalhe - ${param.nome} = é onde o parâmetro “nome” será impresso </li></ul>
  12. 12. CRIANDO NOSSA FRAMEWORK MVC <ul><li>Bom... Muito bom até agora... O que fazer agora!? Humm... Deixe ver... ¬¬....Ah.. Vamos criar um jsp que chamará nosso controlador, passando pra ele o nosso parâmetro “negocio”, que dirá qual a nossa classe lógica será executada, no nosso caso aqui de teste será TestaMVC. </li></ul><ul><li>Também terei o parâmetro nome, pois passarei o nome para a página “mvc-ok.jsp”. </li></ul><ul><li>Mão a obra! </li></ul>
  13. 13. CRIANDO NOSSA FRAMEWORK MVC <ul><li><%@page contentType=&quot;text/html&quot; pageEncoding=&quot;UTF-8&quot;%> </li></ul><ul><li><!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot; </li></ul><ul><li>&quot;http://www.w3.org/TR/html4/loose.dtd&quot;> </li></ul><ul><li><html> </li></ul><ul><li><head> </li></ul><ul><li><meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot;> </li></ul><ul><li><title>Testando...</title> </li></ul><ul><li></head> </li></ul><ul><li><body> </li></ul><ul><li><h2>Coloque seu nome!</h2> </li></ul><ul><li><form name=&quot;formTeste&quot; action=&quot;mvc&quot; method=&quot;POST&quot;> </li></ul><ul><li><input type=&quot;hidden&quot; name=&quot;negocio&quot; value=&quot;TestaMVC&quot; /> </li></ul><ul><li>Nome: <input type=&quot;text&quot; name=&quot;nome&quot; value=&quot;&quot; size=&quot;15&quot; /> </li></ul><ul><li><input type=&quot;submit&quot; value=&quot;Envar&quot; name=&quot;btEnviar&quot; /> </li></ul><ul><li><input type=&quot;reset&quot; value=&quot;Limpar&quot; name=&quot;btLimpar&quot; /> </li></ul><ul><li></form> </li></ul><ul><li></body> </li></ul><ul><li></html> </li></ul><ul><li>//Detalhes: A nossa action vai acessar a minha servlet controladora, no caso aqui “mvc” através do método post </li></ul><ul><li>//Detalhes: Note que o nosso parâmetro “negocio” possui o valor com o nome da classe lógica e um tipo “hidden”, esse tipo esconde a visualização do parâmetro. </li></ul>
  14. 14. CRIANDO NOSSA FRAMEWORK MVC <ul><li>Tcharaaammmmmmm!!!! </li></ul><ul><li>Teste essa jsp e reze pra dar certo! </li></ul><ul><li>=]~ </li></ul><ul><li>Espero ter ajudado um pouco, crie outras aplicações, faça o fatorial: crie a classe lógica, e redirecione para uma página de resultados! </li></ul><ul><li>Bom... Boa sorte! </li></ul><ul><li>Dúvidas e sugestões: zarathon@ufc.br </li></ul>
  15. 15. BIBLIOGRAFIA <ul><li>www.caelum.com.br – apostila FJ21 </li></ul><ul><li>www.guj.com.br </li></ul><ul><li>www.javafree.org </li></ul>

×