Pular para o conteúdo principal

Questão de Programação — Servlet — FGV 2024

ProgramaçãoServlet
Código
fg075978
Banca
FGV
Órgão
AL-TO
Ano
2024
Nível
Superior
Cargo
Analista Legislativo - Desenvolvimento de Sistema
Um sistema do Departamento de Trânsito tem um serviço implementado por meio de uma Servlet, com o trecho de código a seguir, que retorna o dono de um carro de uma placa específica.protected void doGet (HttpServletRequest request,HttpServletResponse response) ...String placa = request.getParameter(“placa”); ...Response.getWriter().write(“O dono é: “ + dono); ...Assinale o código que mostra a função javascript que utiliza a biblioteca AJAX para fazer esta consulta a Servlet.
  1. AImagem associada para resolução da questão
  2. BImagem associada para resolução da questão
  3. CImagem associada para resolução da questão
  4. DImagem associada para resolução da questão
  5. EImagem associada para resolução da questão
Revelar gabarito e comentário

GabaritoA — [imagem]

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”.

Integração JavaScript com Servlets via AJAX

Gabarito: letra A. A alternativa correta utiliza a API moderna fetch do JavaScript para realizar uma requisição HTTP do tipo GET, passando o parâmetro placa diretamente na URL através de uma template literal, que é a forma mais concisa e adequada para consumir o serviço exposto pela Servlet no enunciado.

O enunciado descreve uma Servlet que processa uma requisição doGet e extrai o parâmetro placa via request.getParameter("placa"). Para consumir esse serviço, o cliente JavaScript deve realizar uma chamada que envie esse parâmetro na query string da URL. A API fetch é o padrão moderno para requisições assíncronas, substituindo o antigo XMLHttpRequest e simplificando o uso de Promises para tratar a resposta.

1Método HTTP
doGet → parâmetro na URL (query string)
doPost → parâmetro no corpo
2Parâmetro esperado
placa (request.getParameter)
3Resposta da Servlet
Texto puro (getWriter().write)
4Técnicas
fetch (moderno, Promise)
XMLHttpRequest (antigo)
jQuery $.ajax
axios
Consumo de Servlet via AJAX
LEVELsoulevel.com.br
Consumo de Servlet via AJAX: Método HTTP (doGet → parâmetro na URL (query string), doPost → parâmetro no corpo); Parâmetro esperado (placa (request.getParameter)); Resposta da Servlet (Texto puro (getWriter().write)); Técnicas (fetch (moderno, Promise), XMLHttpRequest (antigo), jQuery $.ajax, axios)

Alternativa A — ✅ Correta ⟵ GABARITO

O código utiliza fetch com uma template literal (delimitada por crases) para construir a URL /buscarDono?placa=${placa}. Isso injeta corretamente o valor da variável placa na query string, exatamente como a Servlet espera receber. O encadeamento .then(response => response.text()) é adequado, pois a Servlet do enunciado responde com response.getWriter().write(...), que envia texto puro (plain text) ao cliente.

Alternativa B — ❌ Incorreta

Embora utilize jQuery ($.ajax), o código define o método como POST e tenta enviar o parâmetro dentro de um objeto DATA (o correto seria data). A Servlet do enunciado foi implementada com o método doGet, portanto, uma requisição POST não seria processada pelo método doGet da Servlet.

Alternativa C — ❌ Incorreta

O código utiliza XMLHttpRequest de forma manual e incorreta. A sintaxe xhr.open('POST' /buscarDono, true) possui um erro de sintaxe (falta de vírgula entre os argumentos), e o método send tenta enviar uma string placa=${placa} que não segue o formato padrão de application/x-www-form-urlencoded esperado para requisições POST, além de novamente utilizar o método POST para um serviço que espera GET.

Alternativa D — ❌ Incorreta

O código utiliza fetch com method: 'GET', mas tenta enviar o parâmetro através do body (JSON.stringify({ placa: placa })). Requisições GET não possuem corpo (body) para envio de dados; parâmetros devem ser enviados na URL. Além disso, o cabeçalho application/json sugere que a Servlet deveria processar JSON, mas o enunciado indica que ela escreve texto puro.

Alternativa E — ❌ Incorreta

O código utiliza a biblioteca axios e envia o parâmetro como id: placa dentro de params. Embora o axios trate a query string corretamente, o parâmetro esperado pela Servlet é placa, e não id. Portanto, a Servlet não conseguiria recuperar o valor correto através de request.getParameter("placa").

PEGA ESSA DICA!

Ao consumir Servlets, sempre verifique o método HTTP (GET ou POST) e como os parâmetros são esperados. Se a Servlet usa getParameter, ela espera os dados na URL (query string) ou no corpo da requisição (se for POST). O fetch é a ferramenta mais cobrada atualmente por ser nativa e baseada em Promises.

Link permanente: /questoes/fg075978