MVC em JSP (Architextura)
⚡ Resumo Inteligente
O MVC em JSP separa as responsabilidades da aplicação em camadas de Modelo, Visão e Controlador, onde o JSP renderiza a Visão, um Servlet atua como Controlador e JavaOs Beans encapsulam o Modelo para aplicações web limpas, testáveis e de fácil manutenção.

O que é MVC?
MVC significa Model-View-Controller (Modelo-Visão-Controlador). É um padrão de projeto de software que separa uma aplicação em três camadas interconectadas: lógica de negócios, apresentação e dados. Em MVC:
- M significa Modelo
- V significa View (Visão)
- C significa Controlador
O MVC (Model-View-Controller) é uma forma sistemática de construir aplicações onde o fluxo começa na camada de visualização (View). A requisição é feita pelo usuário, processada na camada de controle (Controller) e enviada para a camada de modelo (Model) para inserir ou buscar dados. O modelo então retorna uma resposta de sucesso ou falha que a visualização renderiza para o usuário. O diagrama da arquitetura MVC é representado abaixo:

Por que usar MVC? ArchiTextura em JSP?
Antes de pularping Para entender como o MVC funciona em JSP, é útil compreender por que os desenvolvedores adotam esse padrão. Misturar lógica de negócios, chamadas a banco de dados e HTML em uma única página JSP rapidamente resulta em um código espaguete difícil de manter. O MVC resolve esse problema atribuindo a cada aspecto sua própria camada:
- Code Torna-se mais fácil de ler porque cada arquivo tem uma única responsabilidade.
- As equipes podem trabalhar na View, no Controller e no Model em paralelo, sem conflitos.
- Os testes unitários têm como alvo o Modelo diretamente, sem afetar a renderização do JSP.
- Swapping Criar uma visualização JSP para uma resposta JSON ou um mecanismo de modelos diferente é simples.
Como o MVC funciona em JSP
Em uma aplicação MVC baseada em JSP, cada camada corresponde a um tipo específico de aplicação. Java tecnologia. Os arquivos JSP renderizam a View, um Servlet atua como Controller e JavaOs Beans encapsulam o Modelo. As seções abaixo explicam as responsabilidades de cada camada.
Camada de modelo
- Esta é a camada de dados que contém a lógica de negócios do sistema.
- Consiste em todos os dados da aplicação.
- Também representa o estado do aplicativo.
- É construído a partir de JavaFeijões ou POJOs que se conectam ao banco de dados.
- O Controlador comunica-se com o Modelo para obter dados e os encaminha para a camada de Visualização.
- O modelo se conecta ao banco de dados e armazena os dados nele.
Ver camada
- Esta é a camada de apresentação da aplicação.
- É composto por HTML, JSP, CSS e JavaRoteiro.
- Normalmente, apresenta a interface do usuário do aplicativo.
- Exibe os dados obtidos do Controlador, que por sua vez obtém dados das classes da camada de Modelo.
- A camada de visualização (View layer) renderiza dados na interface do usuário do aplicativo sem conter lógica de negócios.
Camada Controladora
- Ele atua como uma interface entre View e Model.
- Ele intercepta todas as solicitações provenientes da camada de visualização.
- Recebe as solicitações da camada de visualização, processa-as e realiza a validação da solicitação.
- A solicitação é encaminhada para a camada de Modelo para processamento de dados. Assim que a solicitação é processada, o Modelo envia o resultado de volta para o Controlador com as informações necessárias, que então são exibidas na 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
- O baixo acoplamento entre as camadas torna a refatoração mais segura.
- O desenvolvimento paralelo por vários membros da equipe é possível.
Exemplo de design de aplicativo JSP com MVC Archiarquitetura
Neste exemplo, vamos mostrar como usar a arquitetura MVC em uma aplicação JSP.
- Vamos usar como exemplo um formulário com duas variáveis, “email” e “password”, que representam nossa camada de visualização.
- Assim que o usuário insere o e-mail e a senha e clica em Enviar, a ação é passada para o Mvc_servlet, onde o e-mail e a senha são recebidos.
- O Mvc_servlet é a camada de Controlador. Nele, a requisição é enviada para o objeto bean que atua como a camada de Modelo.
- Os valores de e-mail e senha são definidos no bean e armazenados para uso posterior.
- O valor é obtido do bean e exibido na camada de visualização.
Mvc_example.jsp (Exibição)
<%@ 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:
Code Linha 10-15: Aqui estamos usando um formulário com dois campos como parâmetros, “email” e “password”, e essa requisição precisa ser encaminhada para um controlador, Mvc_servlet.java, que é passado no atributo action. O método HTTP utilizado é o POST.
Mvc_servlet.java (Controlador)
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:
Code Linha 14: Mvc_servlet é uma extensão de HttpServlet.
Code Linha 26: Como o método utilizado é o POST, a requisição entra no método doPost do Servlet, que processa a requisição e a salva no objeto bean com o nome testobj.
Code Linha 34: Utilizando o objeto de requisição, estamos definindo o atributo “gurubean”, ao qual é atribuído o valor testobj.
Code Linha 35: Aqui estamos usando o objeto RequestDispatcher para encaminhar a mensagem de sucesso para mvc_success.jsp.
TestBean.java (Modelo)
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:
Code Linha 7-17: Contém os métodos getters e setters de email e password, que são membros da classe TestBean.
Code Linha 19-20: Define o e-mail e a senha do membro, do tipo String, na classe bean.
Mvc_success.jsp (Visualização de Resultados)
<%@ 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:
Code Linha 12: Estamos recuperando o atributo usando o objeto de requisição que foi definido no método doPost do Servlet.
Code Linha 13: Estamos imprimindo a mensagem de boas-vindas e o endereço de e-mail que foram salvos no objeto bean.
saída
Ao executar o código acima, você obtém a seguinte saída:
Ao abrir o arquivo mvc_example.jsp, você verá o formulário com os campos de e-mail e senha, além do botão Enviar.
Após inserir o e-mail e a senha no formulário e clicar em Enviar:
Após clicar em Enviar, o resultado será exibido conforme abaixo:
Ao inserir o e-mail e a senha na tela e clicar em Enviar, os dados são salvos no TestBean. A partir do TestBean, eles são recuperados na próxima tela para exibir a mensagem de sucesso. JSP desempenha o papel de apresentar os dados e fornecer a visualização, enquanto o Servlet atua como controlador e o JavaO Bean serve como Modelo. A lógica de negócios principal está contida na camada de Modelo.


