Pular para o conteúdo principal

Questão de Arquitetura de Software — MVC (Model-view-controller) — FCC 2015

Arquitetura de SoftwareMVC (Model-view-controller)
Código
fc019130
Banca
FCC
Órgão
DPE-SP
Ano
2015
Nível
Superior
Cargo
Analista de Sistemas
As aplicações para web que utilizam Java EE normalmente utilizam o padrão de arquitetura MVC. Neste padrão
  1. Acomponentes JSP e JSTL são representados no grupo Controller, já que além de elementos HTML, possuem também código Java.
  2. Bregras de negócio como validação de entrada em formulários são implementadas nos componentes do grupo View.
  3. Cas servlets são representadas no grupo Controller , já que podem receber dados de componentes do grupo View e direcionar adequadamente para componentes do grupo Model e vice-versa.
  4. Dos componentes que fazem conexão com o banco de dados e executam instruções SQL são representados no grupo connection.
  5. Eas classes que representam o modelo das tabelas do banco de dados para as quais os dados da aplicação serão enviados são representadas no grupo Controller.
Revelar gabarito e comentário

GabaritoC — as servlets são representadas no grupo Controller , já que podem receber dados de componentes do grupo View e direcionar adequadamente para componentes do grupo Model e vice-versa.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

MVC (Model-View-Controller) em Java EE

Gabarito: letra C. No padrão MVC, o Controller é responsável por intermediar a comunicação entre a View e o Model, recebendo requisições do usuário, processando-as e encaminhando para as camadas adequadas. Em aplicações Java EE, as servlets exercem exatamente esse papel de Controller, enquanto JSPs são Views e classes de negócio/persistência são Models. A alternativa C descreve corretamente essa função.

A banca cobra o entendimento da separação de responsabilidades no MVC, tema fundamental para arquitetura de software. Vamos analisar cada alternativa:

Alternativa

Grupo no MVC

Função descrita

Correta?

Justificativa

A

Controller

JSP e JSTL com código Java

JSP/JSTL são View, não Controller; código Java em JSP é má prática

B

View

Regras de negócio (validação)

View só deve ter lógica de apresentação; regras de negócio pertencem ao Model

C

Controller

Servlet recebe dados da View, chama Model e direciona resposta

Fluxo clássico do MVC em Java EE

D

"connection"

Conexão com banco e SQL

Não existe grupo "connection" no MVC; persistência é responsabilidade do Model

E

Controller

Classes que representam tabelas do banco (entidades)

Entidades são parte do Model, não do Controller

  1. 1View (JSP) envia requisição
  2. 2Servlet (Controller) recebe
  3. 3Controller chama Model
  4. 4Model processa regras/dados
  5. 5Controller redireciona à View
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

Afirma que JSP e JSTL são representados no grupo Controller. Na verdade, JSPs e JSTL são componentes de apresentação (View). Embora possam conter código Java (o que é uma má prática), seu papel é gerar a interface com o usuário, não controlar o fluxo da aplicação. O Controller é tipicamente implementado por servlets ou frameworks como Spring MVC.

Alternativa B — ❌ Incorreta

Diz que regras de negócio como validação de entrada são implementadas na View. Isso contraria o princípio do MVC: a View deve conter apenas lógica de apresentação. Validações e regras de negócio pertencem ao Model (ou, em alguns casos, ao Controller, mas não à View). A View apenas exibe dados e captura entradas, sem processá-las.

Alternativa C — ✅ Correta ⟵ GABARITO

Correta. As servlets atuam como Controller: recebem dados de componentes View (formulários HTML, por exemplo), processam a requisição (chamando métodos do Model) e direcionam a resposta de volta para a View. Esse é o fluxo clássico do MVC em Java EE.

Alternativa D — ❌ Incorreta

Menciona um grupo "connection" que não faz parte do padrão MVC. A conexão com banco de dados e a execução de SQL são responsabilidades do Model (camada de persistência), não de um componente separado. No MVC, a comunicação com o banco fica encapsulada no Model, que gerencia os dados.

Alternativa E — ❌ Incorreta

Afirma que classes que representam tabelas do banco (entidades) são representadas no Controller. Essas classes são parte do Model (ou, em alguns contextos, do próprio Model). O Controller não deve conter lógica de mapeamento objeto-relacional; ele apenas utiliza os objetos do Model para realizar as operações.

PEGA ESSA DICA!

Para fixar, lembre-se: Model = dados + regras de negócio; View = interface (HTML, JSP); Controller = fluxo, recebe entradas e coordena. Em Java EE, servlets são Controllers, JSPs são Views, e EJBs/POJOs são Models.

Gabarito: letra C.

Link permanente: /questoes/fc019130