Existe no mundo Java, atualmente, uma infinidade de framewor...

Próximas questões
Com base no mesmo assunto
Q1307508 Programação

Existe no mundo Java, atualmente, uma infinidade de frameworks que se propõem a facilitar o desenvolvimento de sistemas web. Nesse cenário, temos o Spring Framework. O código a seguir demonstra uma função bastante comum desse framework.


Imagem associada para resolução da questão


Analisando esse código, comprova-se que

Alternativas

Comentários

Veja os comentários dos nossos alunos

Letra D

Vai retornar 404 (not found) caso acessado via GET, pois o mesmo foi mapeado para ser acessado via POST.

Conceito de:

@RequestMapping: A anotação é usada para mapear solicitações da Web para métodos do Spring Controller.

@Controller vs @RestController

O trabalho do @Controller é criar um Map do model object e encontrar uma view,

O @RestController simplesmente retorna o objeto e os dados do objeto são gravados diretamente na resposta HTTP como JSON ou XML.

https://www.baeldung.com/tag/spring-annotations/

## Tradução Detalhada do Código Spring Controller:

**1. `@Controller`:**

- Esta anotação marca a classe `ProcessoController` como um controller Spring MVC. Ela indica que esta classe manipula requisições HTTP de entrada e produz respostas.

**2. `@RequestMapping(value = "/processos", method = RequestMethod.POST)`:**

- Esta anotação mapeia o método `getProcessos` para lidar com requisições HTTP POST enviadas ao caminho da URL `/processos`.

**- `value = "/processos"`:**

 - Especifica o caminho da URL para o qual este método deve ser invocado. Neste caso, é `/processos`.

**- `method = RequestMethod.POST`:**

 - Especifica o método HTTP para o qual este método deve ser invocado. Neste caso, é `POST`, o que significa que o método do controller manipulará requisições que usam o método `POST`.

**3. `public String getProcessos()`:**

- Define o método `getProcessos` que manipula as requisições mapeadas.

 - `public`: Indica que o método é acessível de outras classes.

 - `String`: Especifica o tipo de retorno do método. Neste caso, ele retorna uma `String`, que normalmente representa o nome da view a ser renderizada.

**4. `System.out.println("Listar todos os processos");`:**

- Esta linha imprime a mensagem "Listar todos os processos" no console. É provável que seja usada para depuração ou registro.

**5. `return "processos-view";`:**

- Esta linha retorna a string `"processos-view"`. No Spring MVC, isso normalmente representa o nome de um template de view a ser renderizado. O template de view real pode estar localizado em um diretório como `/resources/templates` e teria o nome `processos-view.html` (assumindo que seja um template HTML).

**Funcionalidade Geral:**

Este controller Spring MVC define um único endpoint `/processos` que manipula requisições `POST`. Quando uma requisição `POST` é enviada para `/processos`, o método `getProcessos` é invocado. Ele imprime uma mensagem no console, presumivelmente para depuração ou registro, e então retorna a string `"processos-view"`. Essa string provavelmente representa o nome de um template de view que deve ser renderizado em resposta à requisição. O template de view real seria responsável por exibir a lista de processos ou realizar qualquer outra ação necessária.

Fonte: Gemini

Análise das Alternativas:

A- o mesmo não pode ser compilado.

  • Incorreto. O código está correto e pode ser compilado, desde que os pacotes e imports necessários sejam incluídos.

B- será exibido o texto listar todos os processos no navegador.

  • Incorreto. O texto "Listar todos os processos" será exibido no console, não no navegador. O navegador receberá uma resposta que depende da configuração de visualização, não diretamente este texto.

C- será exibida a String processos-view no console da IDE.

  • Incorreto. A String "processos-view" não será exibida no console. O que será exibido no console é "Listar todos os processos", devido ao .

D- retornará um erro se acessado via get.

  • Correto. O mapeamento está configurado para aceitar apenas requisições HTTP POST (). Se a URL for acessada via método GET, o Spring retornará um erro 405 Method Not Allowed.

Resposta Correta

D- retornará um erro se acessado via get.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo