Arquitetura MVC em JSP com Exemplo

Índice:

Anonim

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 
Email:
Senha:

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.