Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
JAVAWEB Introdução a Java volta para web! Zarathon Maia – zarathon@ufc.br
MVC – MODEL, VIEW, CONTROLLER <ul><li>Model:  As classes que representam suas entidades, e as que te ajudam a armazenar e ...
MVC – MODEL, VIEW, CONTROLLER <ul><li>Esses três formam um padrão arquitetural chamado de  MVC, ou Model View Controller. ...
MVC – MODEL, VIEW, CONTROLLER
MVC – MODEL, VIEW, CONTROLLER <ul><li>Request Dispatcher: </li></ul><ul><ul><li>Poderíamos melhorar a nossa aplicação se t...
CRIANDO NOSSA FRAMEWORK MVC <ul><li>Primeiramente iremos criar uma interface que terá que ser assinada por todas as nossas...
CRIANDO NOSSA FRAMEWORK MVC <ul><li>public class TestaMVC implements LogicaDeNegocio { </li></ul><ul><li>public void execu...
CRIANDO NOSSA FRAMEWORK MVC <ul><li>Bom, já criamos nossa interface que deverá ser assinada por todas nossas classes de ló...
CRIANDO NOSSA FRAMEWORK MVC <ul><li>try { </li></ul><ul><li>/*Definindo String que receberá o nome da minha lógica a ser c...
CRIANDO NOSSA FRAMEWORK MVC <ul><li>Pronto! Criamos nossa controladora, agora é só criar as nossas classes lógicas e não e...
CRIANDO NOSSA FRAMEWORK MVC <ul><li><%@page contentType=&quot;text/html&quot; pageEncoding=&quot;UTF-8&quot;%> </li></ul><...
CRIANDO NOSSA FRAMEWORK MVC <ul><li>Bom... Muito bom até agora... O que fazer agora!? Humm... Deixe ver... ¬¬....Ah.. Vamo...
CRIANDO NOSSA FRAMEWORK MVC <ul><li><%@page contentType=&quot;text/html&quot; pageEncoding=&quot;UTF-8&quot;%> </li></ul><...
CRIANDO NOSSA FRAMEWORK MVC <ul><li>Tcharaaammmmmmm!!!! </li></ul><ul><li>Teste essa jsp e reze pra dar certo! </li></ul><...
BIBLIOGRAFIA <ul><li>www.caelum.com.br  – apostila FJ21 </li></ul><ul><li>www.guj.com.br </li></ul><ul><li>www.javafree.or...
Upcoming SlideShare
Loading in …5
×

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

2,529 views

Published on

Uma rápida noção de MVC!

Published in: Technology, Education
  • Be the first to comment

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>

×