Questão nº 34
Questão de Tecnologia da Informação · FCC PGE-AM 2022 (nº 34)
Considere o fragmento de código abaixo retirado de uma página JSP, em condições ideais, em que `rs` é um objeto do tipo `ResultSet` e `st` um objeto do tipo `PreparedStatement`.
```jsp
...
rs = st.executeQuery();
out.print("<table border='1'>");
out.print("<tr><th>Código</th><th>Nome</th><th>Endereço</th><th>Renda</th><th>Exclusão</th></tr>");
while (rs.next()){
out.print("<tr>");
out.print("<td>" + rs.getString("codigo") + "</td>");
out.print("<td>" +rs.getString("nome") + "</td>");
out.print("<td>" +rs.getString("endereco") + "</td>");
out.print("<td>" +rs.getString("renda") + "</td>");
out.print("<td><a href='
I '>Excluir</a></td>");
out.print("</tr>");
}
out.print("</table>");
...
```
Para que, ao se clicar no link Excluir, seja enviado o código do cliente como parâmetro para a página excluir.jsp utiliza-se, na lacuna `I`, a instrução
- A`excluir.jsp?codigo=" + rs.getString("codigo") + "` (alternativa correta)
- B`send:" + rs.getString("codigo") + " => excluir.jsp`
- C`excluir.jsp = rs.getString("codigo")`
- D`excluir.jsp?codigo = rs.getString("codigo")`
- E`excluir.jsp#codigo = + rs.getString("codigo") +`
Resposta comentada
Gabarito Alternativa A
Quando você precisa enviar dados de uma página para outra através de um link, você usa parâmetros de consulta (query parameters) na URL. Isso é feito adicionando um ponto de interrogação `?` após o nome da página, seguido por pares `nomeDoParametro=valorDoParametro`.
(A) Correta: A instrução `excluir.jsp?codigo=" + rs.getString("codigo") + "` constrói corretamente a URL. O `?` inicia a query string, `codigo` é o nome do parâmetro e `rs.getString("codigo")` insere dinamicamente o valor do código do cliente, que será enviado para `excluir.jsp`.
(B) Incorreta: A sintaxe `send:" + rs.getString("codigo") + " => excluir.jsp` não é um formato válido para uma URL ou para passar parâmetros via URL em HTML/JSP. Parece uma tentativa de sintaxe de programação ou de um framework específico, mas não é o padrão para links HTML. A armadilha aqui é a tentativa de confundir o aluno com sintaxes não-padrão.
(C) Incorreta: A instrução `excluir.jsp = rs.getString("codigo")` é uma sintaxe de atribuição, não de construção de URL. Ela não indica como o valor deve ser passado como um parâmetro para a página.
(D) Incorreta: A instrução `excluir.jsp?codigo = rs.getString("codigo")` está sintaticamente incorreta para a concatenação de strings em Java/JSP. O `+` para concatenar `rs.getString("codigo")` está fora da string, e o espaço antes e depois do `=` no parâmetro `codigo` não é padrão e pode causar problemas.
(E) Incorreta: O caractere `#` em uma URL é usado para âncoras (fragment identifiers) dentro da mesma página, não para enviar parâmetros ao servidor. A sintaxe de concatenação também está incorreta.
Fonte: FCC PGE-AM 2022 Técnico em Gestão Procuratorial - Especialidade Engenharia de Software (Caderno Tipo 001). Reproduzida para fins de estudo.