Questão nº 36
Questão de Tecnologia da Informação · FGV TJ-MS 2024 (nº 36)
Considere o seguinte código em Java:
public static void main(String[] args)
throws MalformedURLException {
URL url = new URL("https://bloco13:trib@"+
"www.tjms.jus.br/ws?id=0#A");
String s1 = url.getRef(), s2 = url.getUserInfo(),
s3 = url.getQuery(), s4 = url.getFile();
Arrays.asList(s1,s2,s3,s4).stream()
.map(s->s.concat(";"))
.forEach(System.out::print);
}
Ao ser executado com as importações necessárias, o código acima imprime na saída padrão:
- AException;
- BA;bloco13;id=0;null;
- Cnull;bloco13:trib;id=0#A;null;
- DA;bloco13:trib;id=0;/ws?id=0; (alternativa correta)
- Enull;bloco13;id=0#A;/ws?id=0#A;
Resposta comentada
Gabarito Alternativa D
Uma URL (Uniform Resource Locator) é um endereço completo na internet que identifica um recurso e pode ser dividida em várias partes, como o protocolo (ex: https), as informações do usuário (ex: username:password), o host (o domínio), o caminho (a localização do recurso no servidor), a consulta (parâmetros adicionais após ?) e o fragmento (uma âncora interna após #). A classe java.net.URL no Java oferece métodos para extrair essas partes de forma programática.
- (A) Incorreta: O código não lança uma exceção em tempo de execução. A
MalformedURLExceptioné declarada no métodomaincomthrows, mas a URL fornecida é sintaticamente válida, então nenhuma exceção será realmente disparada. - (B) Incorreta:
url.getUserInfo()retorna "bloco13:trib" (usuário e senha), não apenas "bloco13".url.getFile()retorna "/ws?id=0", nãonull. - (C) Incorreta:
url.getRef()retorna "A", nãonull.url.getQuery()retorna "id=0", pois o fragmento (#A) é uma parte separada e não é incluído na consulta.url.getFile()retorna "/ws?id=0", nãonull. - (D) Correta:
s1 = url.getRef(): Retorna"A", que é a parte do fragmento (após#).s2 = url.getUserInfo(): Retorna"bloco13:trib", que são as informações de usuário e senha (entre//e@).s3 = url.getQuery(): Retorna"id=0", que é a parte da consulta (após?e antes de#).s4 = url.getFile(): Retorna"/ws?id=0", que combina o caminho (/ws) com a consulta (?id=0).
A saída é a concatenação desses valores com um;no final de cada um.
- (E) Incorreta:
url.getRef()retorna "A", nãonull.url.getUserInfo()retorna "bloco13:trib", não apenas "bloco13". A armadilha aqui é confundirgetQuery()ougetFile()com o fragmento;url.getQuery()retorna "id=0", eurl.getFile()retorna "/ws?id=0", ambos não incluem o fragmento#A.
Fonte: FGV TJ-MS 2024 Técnico de Nível Superior - Web Designer (Caderno Tipo 1). Reproduzida para fins de estudo.