Questão nº 41
Questão de Tecnologia da Informação · FCC TRT17 2022 (nº 41)
Em uma aplicação que utiliza Spring Boot, em condições ideais, o arquivo `index.html` possui o formulário abaixo.
<form method="POST" action="login">
<label for="usuario">Usuário:</label>
<input type="text" name="user" id="usuario">
<label for="senha">Senha:</label>
<input type="password" name="senha" id="senha">
<input type="submit" value="Entrar">
</form>
Na classe `Controle.java` dessa aplicação, que possui a anotação `@Controller`, há um método chamado `receberLogin`. Para indicar que este método deve receber os dados do formulário acima ao se clicar no botão Entrar, imediatamente após a declaração deste método deve ser colocada a anotação
- A`@RequestMapping(value = "/login", method = RequestMethod.POST)` (alternativa correta)
- B`@Request(HttpMethod = "POST" param = "/login")`
- C`@HttpServletRequest(method = "POST" requestFrom = "/login")`
- D`@SpringMapping(method = "post", paramRequest = "/login")`
- E`@HttpServletRequest(value = "/login", method = RequestMethod.POST)`
Resposta comentada
Gabarito Alternativa A
Em Spring Boot, usamos anotações para dizer ao framework qual método de um controlador deve responder a uma requisição web específica, baseando-se na URL e no tipo de operação (como enviar dados, que é um POST).
- (A) Correta: Esta anotação,
@RequestMapping, é a forma padrão do Spring para mapear requisições. Ovalue = "/login"corresponde à URL de destino do formulário (action="login"), emethod = RequestMethod.POSTindica que o método deve ser acionado apenas para requisições do tipo POST, que é o método do formulário (method="POST"). - (B) Incorreta: A anotação
@Requestnão existe em Spring para mapeamento de requisições, e os nomes dos parâmetrosHttpMethodeparamestão incorretos. - (C) Incorreta:
@HttpServletRequestnão é uma anotação de mapeamento; é uma interface que representa a requisição HTTP em si, geralmente injetada como parâmetro em um método. Os parâmetrosrequestFromtambém estão incorretos. - (D) Incorreta: A anotação
@SpringMappingnão existe no Spring. O correto é@RequestMapping. Os nomes dos parâmetrosmethod(deveria serRequestMethod.POST) eparamRequesttambém estão incorretos. - (E) Incorreta: Esta alternativa é uma armadilha comum. Embora use os parâmetros
valueemethodcorretamente, a anotação@HttpServletRequestestá errada. Como na alternativa C,@HttpServletRequesté uma interface que representa a requisição, não uma anotação para mapeá-la.
Fonte: FCC TRT17 2022 Analista Judiciário - Área Apoio Especializado - Especialidade Tecnologia da Informação (Caderno Tipo 001). Reproduzida para fins de estudo.