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.