MVC em JSP (Architextura)
O que é MVC?
MVC é uma arquitetura 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:

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, mostraremos como usar a arquitetura MVC em JSP.
- Estamos pegando o exemplo de um formulário com duas variáveis “e-mail” e “senha” que é nossa camada de visualização.
- Depois que o usuário insere o e-mail e a 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 controladora. Aqui em mvc_servlet a solicitação é enviada para o objeto bean que atua como camada de modelo.
- Os valores de e-mail e senha são definidos no bean e armazenados para fins posteriores.
- 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 tem dois campos como parâmetro “email” e “password” e essa requisição precisa ser encaminhada para um controlador Mvc_servlet.java, que é passado em ação. 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: Ele define o email e a senha dos membros 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 o ID do e-mail que foram salvos no objeto bean
Saída:
Ao executar o código acima, você obtém a seguinte saída:
Ao clicar em mvc_example.jsp você recebe o formulário com e-mail e senha com o botão enviar.
Depois de inserir e-mail e senha no formulário e clicar em enviar
Depois de clicar em enviar, a saída é mostrada abaixo
Saída:
Ao inserir e-mail e senha na tela e clicar em enviar, os detalhes 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 a arquitetura MVC, ou seja, Model View Controller.
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.


