O que é MVC?
MVC é uma arquitetura que separa lógica de negócios, apresentação e dados. Em MVC,
- M significa modelo
- V significa View
- C significa controlador.
MVC é uma forma sistemática de usar o aplicativo em que o fluxo começa na camada de visualização, onde a solicitação é gerada e processada na camada do controlador e enviada para a camada de modelo para inserir dados e obter de volta a mensagem de sucesso ou falha.
Camada de modelo:
- Esta é a camada de dados que consiste na lógica de negócios do sistema.
- Consiste em todos os dados do aplicativo
- Ele também representa o estado do aplicativo.
- É composto por classes que possuem conexão com o banco de dados.
- O controlador se conecta ao modelo, busca os dados e os envia para a camada de visualização.
- O modelo também se conecta ao banco de dados e armazena os dados em um banco de dados conectado a ele.
Camada de visualização:
- Esta é uma camada de apresentação.
- Ele consiste em HTML, JSP, etc. nele.
- Normalmente apresenta a IU do aplicativo.
- É usado para exibir os dados que são obtidos do controlador que, por sua vez, obtém dados das classes da camada do modelo.
- Esta camada de visualização mostra os dados na UI do aplicativo.
Camada de controlador:
- Ele atua como uma interface entre View e Model.
- Ele intercepta todas as solicitações que vêm da camada de visualização.
- Ele recebe as solicitações da camada de visualização e processa as solicitações e faz a validação necessária para a solicitação.
- Essas solicitações são posteriormente enviadas para a camada de modelo para processamento de dados e, uma vez que a solicitação é processada, ela é enviada de volta ao controlador com as informações necessárias e exibidas de acordo com a visualização.
O diagrama é representado abaixo:
As vantagens do MVC são:
- De fácil manutenção
- Fácil de estender
- Fácil de testar
- O controle de navegação é centralizado
Exemplo de arquitetura MVC
Neste exemplo, vamos mostrar como usar a arquitetura MVC em JSP.
- Estamos tomando o exemplo de um formulário com duas variáveis "email" e "senha", que é nossa camada de visualização.
- Depois que o usuário insere e-mail e senha e clica em enviar, a ação é passada em mvc_servlet, onde o e-mail e a senha são passados.
- Este mvc_servlet é a camada do controlador. Aqui, em mvc_servlet, a solicitação é enviada ao objeto bean que atua como camada do modelo.
- Os valores de e-mail e senha são definidos no bean e armazenados para outros fins.
- A partir do bean, o valor é obtido e mostrado na camada de visualização.
Mvc_example.jsp
<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%>Exemplo MVC Guru
Explicação do código:
Camada de visualização:
Linha de código 10-15: Aqui estamos pegando um formulário que possui dois campos como parâmetro "email" e "senha" e essa solicitação precisa ser encaminhada para um controlador Mvc_servlet.java, que é passado em ação. O método pelo qual é passado é o método POST.
Mvc_servlet.java
pacote demotest;import java.io.IOException;import javax.servlet.RequestDispatcher;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/ *** Classe de implementação de servlet Mvc_servlet* /public class Mvc_servlet extends HttpServlet {private static final long serialVersionUID = 1L;/ *** @see HttpServlet # HttpServlet ()* /public Mvc_servlet () {super();// TODO stub do construtor gerado automaticamente}protected void doPost (solicitação HttpServletRequest, resposta HttpServletResponse) lança ServletException, IOException {// TODO stub do método gerado automaticamenteString email = request.getParameter ("email");String password = request.getParameter ("senha");TestBean testobj = novo TestBean ();testobj.setEmail (email);testobj.setPassword (senha);request.setAttribute ("gurubean", testobj);RequestDispatcher rd = request.getRequestDispatcher ("mvc_success.jsp");rd.forward (solicitação, resposta);}}
Explicação do código:
Camada de controle
Linha de código 14: mvc_servlet está estendendo HttpServlet.
Linha de código 26: Como o método usado é POST, a solicitação entra em um método doPost do servlet que processa as solicitações e salva no objeto de bean como testobj.
Linha de código 34: Usando o objeto de solicitação, estamos definindo o atributo como gurubean, ao qual é atribuído o valor de testobj.
Linha de código 35: Aqui, estamos usando o objeto request dispatcher para passar a mensagem de sucesso para mvc_success.jsp
TestBean.java
pacote demotest;import java.io.Serializable;public class TestBean implementa Serializable {public String getEmail () {email de retorno;}public void setEmail (String email) {this.email = email;}public String getPassword () {senha de retorno;}public void setPassword (String password) {this.password = senha;}private String email = "null";senha de string privada = "nulo";}
Explicação do código:
Camada de modelo:
Linha de código 7-17: contém os getters e setters de e-mail e senha que são membros da classe Test Bean
Linha de código 19-20: define o e-mail e a senha dos membros do tipo string na classe de bean.
Mvc_success.jsp
<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ page import = "demotest.TestBean"%>Sucesso de Guru <%TestBean testguru = (TestBean) request.getAttribute ("gurubean");out.print ("Bem-vindo," + testguru.getEmail ());%>
Explicação do código:
Linha de código 12: estamos obtendo o atributo usando o objeto de solicitação que foi definido no método doPost do servlet.
Linha de código 13: Estamos imprimindo a mensagem de boas-vindas e a id do e-mail que foram salvas no objeto bean
Resultado:
Ao executar o código acima, você obtém a seguinte saída:
Ao clicar em mvc_example.jsp você obtém o formulário com e-mail e senha com o botão de envio.
Depois de inserir o e-mail e a senha do formulário e clicar em enviar
Depois de clicar em enviar, o resultado é mostrado abaixo
Resultado:
Quando você insere e-mail e senha na tela e clica em enviar, os detalhes são salvos no TestBean e do TestBean eles são buscados na próxima tela para obter a mensagem de sucesso.
Resumo:
Neste artigo, aprendemos sobre a arquitetura MVC, ou seja, Model View Controller.
JSP desempenha o papel de apresentação dos dados e do controlador. É uma interface entre o modelo e a visualização, enquanto o modelo se conecta ao controlador e também ao banco de dados. A principal lógica de negócios está presente na camada do modelo.