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.

  • 🧱 Separação de preocupações: O modelo contém os dados e a lógica de negócios, a visualização renderiza a interface do usuário e o controlador encaminha as solicitações entre eles.
  • 📐 Função JSP: As páginas JSP renderizam a marcação dinâmica para a camada de visualização, enquanto um Servlet lida com o processamento de solicitações na camada de controle.
  • 🔀 Fluxo de requisição: O navegador envia um formulário, o Servlet valida as entradas e preenche um JavaBean, então, encaminha o controle para uma visualização JSP para resposta.
  • Vantagens da Manutenibilidade: A arquitetura MVC em JSP torna as aplicações web mais fáceis de manter, estender, testar unitariamente e navegar de forma centralizada.
  • 🧪 Exemplo de trabalho: Um formulário de login envia dados para o Mvc_servlet, que armazena o e-mail e a senha em um TestBean e, em seguida, encaminha para o mvc_success.jsp.
  • 🤖 Modernização da IA: Assistentes de IA agora ajudam a refatorar código JSP MVC legado para Spring MVC, gerando controladores, DTOs e testes sob demanda.

MVC em JSP (Architextura)

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:

MVC Archiarquitetura
MVC Archidiagrama de arquitetura

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:

Design de aplicativo JSP

Após clicar em Enviar, o resultado será exibido conforme abaixo:

Design de aplicativo JSP

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.

Perguntas Frequentes

MVC em JSP é um padrão de projeto que divide uma aplicação web em três camadas: Modelo (dados e lógica de negócios), Visão (páginas JSP que renderizam a interface do usuário) e Controlador (um Servlet que processa as requisições e encaminha as respostas).

O JSP pertence principalmente à camada de visualização, pois renderiza HTML dinâmico para o usuário. No padrão JSP Modelo 2, um Servlet desempenha o papel de Controlador e JavaOs feijões desempenham o papel de Modelo, mantenhaping JSP sem lógica de negócios.

O Modelo 1 coloca a lógica de negócios, o acesso a dados e a apresentação diretamente dentro das páginas JSP. O Modelo 2 segue o MVC: um Servlet atua como Controlador, JavaOs beans formam o Modelo e os arquivos JSP renderizam a Visualização. O Modelo 2 é a abordagem recomendada.

O MVC melhora a manutenção, a testabilidade e a produtividade da equipe. Cada camada evolui independentemente, a lógica de negócios permanece fora dos arquivos JSP, a navegação é centralizada no Servlet e os testes unitários cobrem o Modelo sem a necessidade de iniciar um contêiner web.

O navegador envia um formulário para um Servlet. O Servlet valida as entradas, cria ou atualiza um JavaO bean é armazenado como um atributo da requisição. Em seguida, o controle é encaminhado para uma página JSP, que lê o bean e renderiza a resposta.

Assistentes de codificação com IA analisam Servlets e arquivos JSP legados, por exemplotracA lógica de negócios incorporada em serviços limpos, os controladores e DTOs do Spring MVC gerados e a produção de resultados são implementados. JUnit testes. Isso acelera a migração do JSP Modelo 2 para frameworks modernos com menos reescrita manual.

As ferramentas de IA estruturam os controladores Spring MVC e geram um mapa de requisições.pingEles sugerem anotações de validação, escrevem modelos Thymeleaf e criam testes de integração. Também detectam problemas de segurança, como a falta de proteção contra CSRF ou o tratamento inseguro de entradas em métodos de controladores.

Resuma esta postagem com: