MVC Archiarquitetura em Java com exemplo de design de aplicativo JSP

O que é MVC?

MVC é um archiarquitetura que separa lógica de negócios, apresentação e dados. Em MVC,

  • M significa Modelo
  • V significa Ver
  • C significa controlador.

MVC é uma forma sistemática de usar a aplicação onde o fluxo começa na camada de visualização, onde a solicitação é levantada e processada na camada controladora e enviada para a camada modelo para inserir dados e receber de volta a mensagem de sucesso ou falha. O MVC ArchiO diagrama de arquitetura é representado abaixo:

MVC Archiarquitetura
MVC Archidiagrama de arquitetura

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
  • 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.

Ver camada

  • Esta é uma camada de apresentação.
  • Consiste em HTML, JSP, etc.
  • Normalmente apresenta a UI do aplicativo.
  • Ele é usado para exibir os dados que são buscados no controlador que, por sua vez, busca dados nas classes da camada do modelo.
  • Esta camada de visualização mostra os dados na UI do aplicativo.

Camada Controladora

  • Ele atua como uma interface entre View e Model.
  • Ele intercepta todas as solicitações provenientes 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.
  • Essa solicitação é posteriormente enviada à camada de modelo para processamento de dados e, uma vez processada, a solicitação é enviada de volta ao controlador com as informações necessárias e exibidas de acordo pela visualização.

Vantagens do MVC Archiarquitetura

As vantagens do MVC são:

  • Fácil de manter
  • Fácil de estender
  • Fácil de testar
  • O controle de navegação é centralizado

Exemplo de design de aplicativo JSP com MVC Archiarquitetura

Neste exemplo, vamos mostrar como usar MVC archiestrutura em JSP.

  • Estamos tomando o exemplo de um formulário com duas variáveis ​​“email”E“ senha ”que é nossa camada de visualização.
  • Assim que o usuário inserir email, e senha e cliques em enviar então a ação é passada em mvc_servlet onde email e senha são passados.
  • Este mvc_servlet é a camada controladora. Aqui em mvc_servlet a solicitação é enviada para o objeto bean que atua como camada de modelo.
  • Oemail e os valores de senha são definidos no bean e armazenados para outros fins.
  • 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"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>MVC Guru Example</title>
</head>
<body>
<form action="Mvc_servlet" method="POST">
Email: <input type="text" name="email">
<br />
Password: <input type="text" name="password" />
<input type="submit" value="Submit" />
</form>
</body>
</html>

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 esta solicitação precisa ser encaminhada para um controlador Mvc_servlet.java, que é passado em açao. O método pelo qual ele é passado é o método POST.

Mvc_servlet.java

package 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;

/**
 * Servlet implementation class Mvc_servlet
 */
public class Mvc_servlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public Mvc_servlet() {
        super();
        // TODO Auto-generated constructor stub
    }


	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		String email=request.getParameter("email");  
        String password=request.getParameter("password");
        
        TestBean testobj = new TestBean();
        testobj.setEmail(email);
        testobj.setPassword(password);
        request.setAttribute("gurubean",testobj);
        RequestDispatcher rd=request.getRequestDispatcher("mvc_success.jsp");  
        rd.forward(request, response); 
	}

}

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 bean como testobj.

Linha de código 34: Usando o objeto request, 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

package demotest;

import java.io.Serializable;

public class TestBean implements Serializable{
	
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	private String email="null";
	private String password="null";


}

Explicação do código:

Camada de modelo:

Linha de código 7-17: Ele contém os getters e setters de email e senha que são membros da classe Test Bean

Linha de código 19-20: Define os membros email e senha do tipo string na classe do bean.

Mvc_success.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
    <%@page import="demotest.TestBean"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Success</title>
</head>
<body>
<%  
TestBean testguru=(TestBean)request.getAttribute("gurubean");  
out.print("Welcome, "+testguru.getEmail());  
%>
</body>
</html>

Explicação do código:

Linha de código 12: estamos obtendo o atributo usando o objeto request que foi definido no método doPost do servlet.

Linha de código 13: Estamos imprimindo a mensagem de boas-vindas e email id dos quais foram salvos no objeto bean

Saída:

Ao executar o código acima, você obtém o seguintewing saída:

Ao clicar em mvc_example.jsp você obtém o formulário com email e senha com o botão enviar.

Depois de entrar email e senha para o formulário e clique em enviar

Design de aplicativo JSP

Depois de clicar em enviar, a saída é mostrada abaixo

Design de aplicativo JSP

Saída:

Quando você entra email e senha na tela e clique em enviar então, o details são salvos no TestBean e do TestBean são buscados na próxima tela para receber a mensagem de sucesso.

Resumo

Neste artigo, aprendemos sobre o MVC, ou seja, Model View Controller archiarquitetura.

JSP desempenha o papel de apresentação dos dados e controlador. É uma interface entre o modelo e a visualização, enquanto o modelo se conecta tanto ao controlador quanto ao banco de dados. A principal lógica de negócios está presente na camada de modelo.