Buscar

Desenvolvimento de Aplicações Web

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 52 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 52 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 52 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Desenvolvimento de Aplicações Web 
 
Questões Objetivas 
 
Questão 1 
Marque a alternativa que apresenta o protocolo utilizado na troca de arquivos de hipertexto na internet. 
(a) RIP 
(b) SNMP 
(c) HTTP 
(d) NFS 
(e) DNS 
 
Questão 2 
Marque a alternativa que apresenta o nome do servidor web mais usado atualmente. 
(a) Lynx 
(b) BIG-IP 
(c) Varnish 
(d) Apache 
(e) Google 
 
Questão 3 
Marque a alternativa que apresenta a estrutura básica de uma página web que usa HTML. 
a) <head>..</head><body>...</body> 
b) <html><head>..</head></html> 
c) <html><head>..</head><body>...</body></html> 
d) <html><body>...</body><head>..</head></html> 
e) <head><html>..</ html ><body>...</body></ head > 
 
Questão 4 
Linguagem em formato script usado para definir a APARÊNCIA (DESIGN) do portal 
a) Java 
b) Javascript 
c) CSS 
d) HTML 
e) SGML 
 
Questão 5 
É uma linguagem de programação que é executada no lado cliente, pelo navegador do usuário. Esta linguagem 
é focada na interação com o usuário. Marque a alternativa que apresenta o nome dessa linguagem. 
a) Java 
b) Javascript 
c) PHP 
d) HTML 
e) SGML 
 
 
Questão 6 
Em um formulário HTML, um dos atributos disponíveis é o ACTION . Marque a alternativa que apresenta um 
possível valor desse atributo. 
a) N, fornecido pelo usuário, para o cálculo de do n-ésimo termo da série de Fibonacci 
b) O endereço de um programa no servidor 
c) POST 
d) TYPE 
e) SUBMIT 
 
Questão 7 
Em um formulário HTML, um dos atributos disponíveis é o METHOD. Marque a alternativa que apresenta um 
possível valor desse atributo. 
a) N, fornecido pelo usuário, para o cálculo de do n-ésimo termo da série de Fibonacci 
b) O endereço de um programa no servidor 
c) POST 
d) TYPE 
e) SUBMIT 
 
Questão 8 
Marque a alternativa que apresenta o parâmetro do método doGet responsável por encapsular os dados do 
cliente. 
a) REQUEST 
b) RESPONSE 
c) SUBMIT 
d) POST 
e) GET 
 
Questão 9 
Marque a alternativa que apresenta o parâmetro do método doGet responsável por encapsular que serão 
enviados para o cliente. 
a) REQUEST 
b) RESPONSE 
c) SUBMIT 
d) POST 
e) GET 
 
Questão 10 
Marque a alternativa que apresenta o nome do método que é chamado quando é feita uma requisição do tipo 
POST em um servlet. 
a) doGet 
b) doPost 
c) REQUEST 
d) RESPONSE 
e) SUBMIT 
 
Questão 11 
Marque a alternativa que apresenta a forma correta para vincularmos um estilo à uma página HTML. 
(a) inline, incorporado e externo. 
(b) internos, externos e em arquivo. 
(c) inline, outline e externo. 
(d) inline, incorporado e interno. 
(e) incorporado, outline e externo. 
 
 
 
 
 
 
 
 
 
 
 
 
Questão 12 
Considere a figura 1. 
 
 
Figura 1: tela; 
 
 
Marque a alternativa que apresenta a linha de código que deverá ser usada para obter a janela acima. 
(a) prompt(“A página em localhost diz:”); 
(b) prompt(“Digite sua idade”); 
(c) dialog(“Digite sua idade”); 
(d) dialog(“A página em localhost diz:”); 
(e) prompt(“A página em localhost diz:”, “Digite a sua idade”); 
 
Questão 13 
Marque a alternativa que apresenta a resposta correta, que informa a relação entre um servlet e um jsp 
(a) Um servlet é traduzido para um jsp. 
(b) Um jsp é traduzido para um servlet. 
(c) Um jsp é compilado para um servelt. 
(d) Um servlet é compilado para um jsp. 
(e) Não há relação. 
 
Questão 14 
Considere a cor em hexadecimal: #1234A5. Marque a alternativa que apresenta a cor predominante no 
hexadecimal apresentado. 
(a) vermelho 
(b) verde 
(c) azul 
(d) laranja 
(e) amarelo 
 
Questão 15 
Marque a alternativa que possui o comando que indica para o navegador qual é a principal linguagem que 
será utilizada na página html. 
(a) DOCTYPE 
(b) HTML 
(c) LANG 
(d) LINK 
(e) HEAD 
 
 
 
 
 
 
 
 
 
 
 
 
Questão 16 
Para obter o resultado contido na segunda linha da figura abaixo (Cabeçalho nível 2), devemos usar a tag 
da opção: 
 
 
(a) <h1> 
(b) <h2> 
(c) <h3> 
(d) <h4> 
(e) <h5> 
 
Questão 17 
Marque a alternativa que contém a tag usada para fazer uma “linha horizontal“. 
(a) <br /> 
(b) <hr /> 
(c) <lb /> 
(d) <p /> 
(e) \n 
 
Questão 18 
Marque a alternativa que contém a tag usada para fazer uma lista não ordenada. 
(a) <al /> 
(b) <el /> 
(c) <il /> 
(d) <ol /> 
(e) <ul /> 
Questão 19 
Deseja-se colocar a fórmula abaixo em uma página HTML. 𝑥"=2 
Para isso usaremos a tag da alternativa 
(a) <b> 
(b) <i> 
(c) <small> 
(d) <sup> 
(e) <sub> 
 
 
 
 
 
Questão 20 
Considere o texto: 
 
“O homem é do tamanho do seu sonho.” 
 
Essa citação é de Fernando Pessoa. Para colocar em uma página e dando a merecida ênfase necessária, 
usamos a tag: 
 
(a) <b> 
(b) <i> 
(c) <strong> 
(d) <sup> 
(e) <sub> 
 
Questão 21 
Na tag select, fornecemos ao usuário uma lista de opções, na qual poderá ser escolhido um único 
elemento. Porém algumas vezes deseja-se que o usuário escolha mais de uma opção. Para que esta 
alteração seja necessária, acrescentamos na tag select o valor: 
 
(a) single 
(b) selected 
(c) chosed 
(d) multiple 
(e) optgroup 
 
 
 
Questão 22 
Marque a alternativa que não apresenta uma categoria de valor para uma regra CSS. 
(a) palavra-reservada 
(b) string 
(c) número 
(d) número não negativo 
(e) número com unidade de medida 
 
Questão 23 
Marque a alternativa que apresenta o nome da forma de vincular a folha de estilo à página de acordo 
com: 
 
<p style=”color:white;"> 
 
(a) incorporados 
(b) outline 
(c) externos 
(d) inline 
(e) hiperlinkados 
 
 
 
 
 
Questão 24 
Marque a alternativa que possui o comando que indica para o navegador qual é a especificação do código 
que será utilizada na página html. 
(a) DOCTYPE 
(b) HTML 
(c) LANG 
(d) LINK 
(e) HEAD 
Questão 25 
Para obter o resultado contido na primeira linha da figura abaixo (Cabeçalho nível 1), devemos usar a tag 
da opção: 
 
 
(a) <h1> 
(b) <h2> 
(c) <h3> 
(d) <h4> 
(e) <h5> 
Questão 26 
Marque a alternativa que contém a tag usada para fazer uma “quebra de linha”. 
(a) <br /> 
(b) <hr /> 
(c) <lb /> 
(d) <p /> 
(e) \n 
Questão 27 
Marque a alternativa que contém a tag usada para fazer uma lista ordenada. 
(a) <al /> 
(b) <el /> 
(c) <il /> 
(d) <ol /> 
(e) <ul /> 
 
 
 
Questão 28 
Deseja-se colocar a fórmula abaixo em uma página HTML. 𝑥#=2 
Para isso usaremos a tag da alternativa 
(a) <b> 
(b) <i> 
(c) <small> 
(d) <sup> 
(e) <sub> 
 
Questão 29 
Considere o texto: 
 
“O homem é do tamanho do seu sonho.” 
 
Essa citação é de Fernando Pessoa. Para colocar em uma página e dando a merecida ênfase necessária, 
usamos a tag: 
 
(a) <em> 
(b) <i> 
(c) <small> 
(d) <sup> 
(e) <sub> 
 
Questão 30 
Na tag select, para que uma das opções já venha pré-selecionada, usamos: 
 
(a) single 
(b) selected 
(c) chosed 
(d) multiple 
(e) optgroup 
 
Questão 31 
Marque a alternativa que apresenta a categoria utilizada na regra CSS: 
 
p{color:red;}. 
 
(a) palavra-reservada 
(b) string 
(c) número 
(d) palavra-chave 
(e) número com unidade de medida 
 
 
 
 
 
 
Questão 32 
Marque a alternativa que apresenta o nome da forma de vincular a folha de estilo à página de acordo 
com: 
 
<head> 
<style type="text/css" media="all"> 
 body { 
margin: 0; 
padding: 0; 
font-size: 80%; 
color: black; 
background: white; } 
</style> 
</head> 
 
(a) incorporados 
(b) outline 
(c) externos 
(d) inline 
(e) hiperlinkados 
 
Questão 33 
Considere que temos um servlet chamado calculo. Em um formulário html o atributo action para este 
servlet deverá ser: 
(a) calculo 
(b) calculo.java 
(c) calculo.jsp 
(d) calculo.class 
(e) servlet.calculo 
 
Questão 34 
No método GET o tipo de codificação usada é: 
(a) application/x-www-form-urlencoded(b) application/x-www-form-encoded 
(c) multipart/form-data 
(d) multipart/form-data-encoded 
(e) application/x-www-form-urldecoded 
 
Questão 35 
Padrão de resposta HTTP informando que a solicitação foi respondida com sucesso: 
 
(a) 200 (b) 203 (c) 205 (d) 307 (e) 404 
 
Questão 36 
Considere a versão do protocolo HTTP na coluna da esquerda e as descrições da coluna da direita. Marque 
a alternativa que apresenta a correlação correta. 
1. HTTP 0.9 ( ) Uma conexão para vários recursos 
2. HTTP 1.0 ( ) Transfere dados em formato ASCII 
3. HTTP 1.1 ( ) Priorização no fornecimento de recursos. 
4. HTTP 2.0 ( ) Uma conexão para cada recurso 
 (a) 2-4-1-3 
(b) 3-4-1-2 
(c) 2-1-4-2 
(d) 3-1-4-2 
(e) 1-2-3-4 
 
Questão 37 
Marque a opção que apresenta o tipo de INPUT utilizado para o uso de senhas um formulário HTML. 
(a) number 
(b) password 
(c) keygen 
(d) text 
(e) passwd 
 
Questão 38 
Marque a opção que apresenta o tipo de dado retornado pelo método getParameter de um objeto do tipo 
HttpServletRequest 
(a) Enumeration 
(b) String [] 
(c)String 
(d) boolean 
(e) void 
 
Questão 39 
Considere a saída em um navegador web conforme a figura 1. 
*### 
#*## 
##*# 
###* 
Figura 1: Saída do algoritmo 
 
Marque a alternativa que apresenta o scriptlet responsável por esta saída. 
 
(a) <%= for(int i=2; i<6; i++){ 
 for(int j=2; j<6; j++) 
 if(i==j) out.print("*"); 
 else out.print("#"); 
 out.println(""); 
 } 
 %> 
(b) <%! for(int i=2; i<6; i++){ 
 for(int j=2; j<6; j++) 
 if(i%j==0) out.print("*"); 
 else out.print("#"); 
 out.println(""); 
 } 
 %> 
(c) <% for(int i=2; i<6; i++) 
 for(int j=2; j<6; j++){ 
 if(i%j==0) out.print("*"); 
 else out.print("#"); 
 out.println(""); 
 } 
 %> 
(d) <% for(int i=2; i<6; i++){ 
 for(int j=2; j<6; j++) 
 if(i%j==0) out.print("*"); 
 else out.print("#"); 
 out.println(""); 
 } 
 %> 
(e) <% for(int i=2; i<6; i++){ 
 for(int j=2; j<6; j++){ 
 if(i==j) out.print("*"); 
 else out.print("#"); 
 out.println(""); 
 } 
 %> 
 
Questão 40 
Em um tráfego de redes que foi capturado, há todo o fluxo de comunicação entre um navegador Chrome 
e um servidor web apache. Neste tráfego há um pacote TCP com a flag SYN configurada com o valor 1 e 
o número de sequencia 3141592. Considerando que este pacote é o primeiro que foi enviado, na camada 
de transporte, entre o cliente e o servidor acima, marque a alternativa correta. 
 
(a) A porta TCP utilizada no cliente é, necessariamente, 80, considerando as condições normais de 
comunicação entre o cliente e o servidor 
 
(b) Este pacote utiliza, necessariamente, a flag RST configurada com o valor 0, considerando as 
condições normais de comunicação entre o cliente e o servidor 
 
(c) A porta UDP utilizada no cliente é, necessariamente, 80, considerando as condições normais de 
comunicação entre o cliente e o servidor 
 
(d) O número de sequencia utilizado no próximo pacote TCP da comunicação é, necessariamente, 
3141592, considerando as condições normais de comunicação entre o cliente e o servidor 
 
(e) o número de sequencia utilizada no próximo pacote TCP da comunicação é, necessariamente, 3141593, 
considerando as condições normais de comunicação entre o cliente e o servidor 
 
 
Questão 41 
Considere a figura 1, parte de uma tela capturada de um site na web. 
 
 
Figura 1:Captura de tela de um site na internet 
 
Marque a alternativa que apresenta a informação correta. 
 
(a) Nesta figura possui um componente de um formulário HTML que foi gerado usando uma folha de estilo 
 
(b) Nesta figura possui um componente de um formulário HTML que foi gerado usando uma linha de código 
HTML 
 
(c) Nesta figura possui um componente de um formulário HTML que foi gerado usando uma linha de código 
escrito em Javascript 
 
(d) Nesta figura possui um componente de um formulário HTML que foi gerado usando uma linha de código 
HTML e uma folha de estilo 
 
(e) Nesta figura possui um componente de um formulário HTML que foi gerado pela seguinte linha de código 
 
<input type=”text” name=”nome” length=”10”> 
 
 
Questão 42 
Ao fazer uma pesquisa no google, um usuário percebeu que na barra de endereços do navegador apareceu 
o seguinte conteúdo: 
 
https://www.google.com.br/search?q=unicarioca&oq=unicarioca+&aqs=chrome..69i57j69i60l4j0.1577j0
j9&sourceid=chrome&ie=UTF-8 
 
Marque a alternativa correta. 
 
(a) O formulário utilizado possui como valor para o atributo METHOD a string GET. 
 
(b) O formulário utilizado possui como valor para o atributo METHOD a string POST. 
 
(c) O formulário utilizado possui como valor para o atributo ACTION a string GET. 
 
(d) O formulário utilizado possui como valor para o atributo ACTION a string POST. 
 
(e) O formulário utilizado possui como valor para o atributo METHOD a string ./search. 
 
 
 
Questão 43 
Ao fazer uma pesquisa no google, um usuário percebeu que na barra de endereços do navegador apareceu 
o seguinte conteúdo: 
 
https://www.google.com.br/search?q=unicarioca&oq=unicarioca+&aqs=chrome..69i57j69i60l4j0.1577j0
j9&sourceid=chrome&ie=UTF-8#q=cora%C3%A7%C3%A3o 
 
Marque a alternativa correta. 
 
(a) O tipo de codificação utilizada no formulário quando o método é GET é application/x-www-form- 
urlencoded 
 
(b) O tipo de codificação utilizada no formulário quando o método é GET é multipart/form-data 
 
(c) O tipo de codificação utilizada no formulário quando o método é GET não é importante, uma vez que 
é realizada a decodificação adequada no lado cliente 
 
(d) Esta pesquisa não poderá ser armazenada no histórico, a menos que se instale um determinado plugin, 
disponível para todos os navegadores 
 
(e) Devido ao método de codificação utilizado, esta pesquisa torna-se a mais segura disponível no 
mercado 
 
 
 
 
 
 
 
 
 
 
 
 
Questão 44 
 
Considere as figuras 1 e 2. Marque a alternativa que apresenta o atributo que acrescentamos na tag select 
para transformar select da figura 1 no select da figura 2. 
 
 
 Figura 1 Figura 2 
 
a) selected 
b) value=multiple 
c) multiple 
d) value=selected 
e) name=time 
 
 
 
Questão 45 
Ao recuperarmos os nomes dos atributos disponíveis em uma requisição, usamos o método 
getAttributeNames(). Marque a alternativa que possui o tipo que é retornado ao usar esse método. 
a)java.lang.String; 
b)java.lang.String[]; 
c)java.util.Enumeration; 
d)ServletContext; 
e)java.lang.Object; 
 
 
 
Questão 46 
O método setContentType() é usado para definir o tipo de informação que será enviada para o cliente. 
Marque a alternativa que apresenta a classe que esse método foi definida. 
a)ServletResponse 
b)ServletRequest 
c)HttpServletResponse 
d)HttpServletRequest 
e)Servlet 
 
Questão 47 
Considere o segmento de código: <%}%> 
a) Action 
b) Declaration 
c) Scriptlet 
d) Directive 
e) Scripting 
 
Questão 48 
Um desenvolvedor estava escrevendo um formulário para validação de login e senha. O código do 
formulário é: 
 
<form action = “validar” method = “post”> 
 
O código do servlet é: 
 
public class ValidarSenha extends HttpServlet{ 
public void doPost(.... 
 
Sabendo que tudo funcionou corretamente, marque a alternativa correta. 
a) A action validar foi redirecionada corretamente para o servlet, uma vez que os parâmetros servlet-
name e servlet-class estavam configurados corretamente. 
b) A action validar foi redirecionadacorretamente para o servlet, uma vez que o servlet de controle padrão 
do java funciona dessa forma. 
c) A action validar foi redirecionada corretamente para o servlet, uma vez que o valor da action foi dado 
corretamente. 
d) A action validar foi redirecionada corretamente para o servlet, uma vez que os parâmetros servlet-
name e url-pattern estavam corretamente configurados. 
e) A action validar foi redirecionada corretamente para o servlet, uma vez que foi escolhido o método 
correto: POST. 
 
Questão 49 
Considere a figura 1: 
 
 
 
 
 
 
Figura 1: HTTP Status 500 
 
Marque a alternativa que, provavelmente, apresenta a ação do desenvolvedor que gerou esta tela. 
a) Alterou a página index.html para Index.html. 
b) Escreveu um servlet com o código: out.println(“HTTP Status 500 – ja”);. 
c) Escreveu um servlet com erro. 
d) Fez uma classe em Java sem herdar a classe HttpServlet. 
e) Escreveu um formulário HTML sem colocar o código: <!DOCTYPE html> 
 
Questão 50 
Considere a figura 2. 
 
Figura 2: Captura do AVA; 
Esta imagem foi capturada diretamente do AVA você tem acesso. É do local onde você envia mensagem para os 
seus professores e outros alunos da Unicarioca. 
 
Sobre a imagem acima, marque a alternativa correta. 
a) Esta imagem tem um formulário HTML com um elemento do tipo INPUT cujo TYPE é TEXT. 
b) Esta imagem tem um formulário HTML com um elemento do tipo INPUT cujo TYPE é TEXTAREA. 
c) Esta imagem tem um formulário HTML com um elemento do tipo INPUT cujo TYPE é MESSAGE. 
d) Esta imagem em um formulário HTML com um elemento do tipo TEXTAREA. 
e) Esta imagem tem um formulário HTML com um elemento do tipo TEXT. 
 
 
Questão 51 
Considere o seguinte segmento de código. 
 
<% int numero = Integer.parseInt( 
request.getParameter(“numero”)); 
out.println(String.valueOf(numero)); 
%> 
 
Marque a alternativa que apresenta um segmento de código que pode substituir o segmento acima 
apresentado. 
a) <%= request.getParameter(“numero”)%> 
b) <%@ request.getParameter(“numero”)%> 
c) <%! request.getParameter(“numero”)%> 
d) <% request.getParameter(“numero”)%> 
e) <$ request.getParameter(“numero”)$> 
 
Questão 52 
Em um tráfego de redes que foi capturado, há todo o fluxo de comunicação entre um navegador do 
cliente, que no caso foi o Chrome e um servidor web, que no caso foi um Apache Tomcat. Neste tráfego 
há um pacote TCP com a flag SYN configurada com o valor 1 e o número de sequencia 3141592. 
Considerando que este pacote é o primeiro que foi enviado, na camada de transporte, entre o cliente e o 
servidor acima, marque a alternativa correta. 
 
a) A porta TCP utilizada no cliente é, necessariamente, 80, considerando as condições normais de 
comunicação entre o cliente e o servidor. 
b) Este pacote utiliza, necessariamente, a flag URG configurada com o valor 0, considerando as 
condições normais de comunicação entre o cliente e o servidor. 
c) A porta UDP utilizada no cliente é, necessariamente, 80, considerando as condições normais de 
comunicação entre o cliente e o servidor. 
d) O número de sequencia utilizado no próximo pacote TCP da comunicação é, necessariamente, 3141592, 
e possui as flags SYN e ACK configuradas como 0 e 1 respectivamente, considerando as condições normais 
de comunicação entre o cliente e o servidor. 
e) o número de sequencia utilizada no próximo pacote TCP da comunicação é, necessariamente, 3141593, 
e possui as flags SYN e ACK configuradas como 0 e 1 respectivamente, considerando as condições normais 
de comunicação entre o cliente e o servidor. 
 
Questão 53 
Considere a imagem abaixo. 
 
 
Figura 1: captura de tela do software wireshark; 
 
Nesta figura é apresentada uma tabela contendo detalhes do tráfego de redes entre os computadores de 
endereço 192.168.1.104 e 216.18.166.136. Marque a alternativa que apresenta a explicação mais 
adequada com relação ao que está ocorrendo. 
 
a) É o 3-way handshake entre os equipamentos com endereços citados, onde o servidor enviou dois 
pacotes e o cliente apenas um. 
b) Está ocorrendo a troca de pacotes para o estabelecimento da comunicação entre os equipamentos, 
usando o protocolo HTTP. 
c) Está ocorrendo a troca de pacotes para o estabelecimento da comunicação entre os equipamentos, mas 
somente um destes está usando o protocolo HTTP. 
d) Está ocorrendo o estabelecimento da conexão através da troca de pacotes TCP, conhecido como 3-
way handshake, ou conexão de três vias. 
e) Está ocorrendo a execução do comando HTTP 1.1 GET /. 
 
Questão 54 
Considere a imagem abaixo. 
 
 
Figura 2: Segmento de uma página web. 
 
Marque a opção que apresenta o código HTML utilizado. 
 
 
a) 
<select name="example"> 
<option value="News">News</option> 
<option value="Sports">Sports</option> 
<option value="Music">Music</option> 
<option value="Java">Java</option> 
<option value="Web">Web</option> 
 </select> 
 
 b) 
<input type=text value="News">News</input> 
<input type=text value="Sports">Sports</input> 
<input type=text value="Music">Music</input> 
<input type=text value="Java">Java</input> 
<input type=text value="Web">Web</input> 
 
 c) 
<textarea> News 
Sports 
Music 
Java 
Web 
</textarea> 
 d) 
<input type= radio value="News">News</input> 
<input type= radio value="Sports">Sports</input> 
<input type= radio value="Music">Music</input> 
<input type= radio value="Java">Java</input> 
<input type= radio value="Web">Web</input> 
 e) 
<select name="example" multiple> 
<option value="News">News</option> 
<option value="Sports">Sports</option> 
<option value="Music">Music</option> 
<option value="Java">Java</option> 
<option value="Web">Web</option> 
 </select> 
 
 
 
Questão 55 
O conteúdo integral de um arquivo é apresentado abaixo. 
 
A { color: white; background-color: red} 
P { color: green} 
 
Esse conteúdo é do tipo: 
 
a) HTML. 
b) CSS. 
c) JAVASCRIPT. 
d) JSP. 
e) JAVA. 
 
Questão 56 
A respeito das tecnologias utilizadas na Internet, é correto afirmar que: 
 
a) o Java Script pode ser utilizado para validar informações digitadas em campos de entrada de dados 
de um formulário escrito em HTML. 
b) o código escrito em Java Script é executado somente nos servidores Web, não sendo executado nos 
browsers. 
c) um arquivo JSP (Java Server Pages) pode ser executado tanto nos servidores Web como nos browsers. 
d) os tags <@ e @> delimitam código escrito em Java Script em uma página JSP (Java Server Pages). 
e) em JSP (Java Server Pages), somente é possível utilizar as linguagens Java e Java Script. 
 
 
Questão 57 
Considere a imagem abaixo. 
 
 
Figura 3: Captura de tela do wireshark; 
 
Marque a opção que apresenta o tipo de resposta informada do servidor ao cliente. 
 
a) Execução realizada com sucesso. 
b) Redireciomanto realizado. 
c) Arquivo não encontrado. 
d) Erro interno do servidor. 
e) Servidor não encontrado. 
 
Fatorial 
 
Implemente um portal que calcule o fatorial de um número fornecido por um usuário, 
usando servlet 
 
Arquivo: index.html 
<html> 
 <head> 
 <title>TODO supply a title</title> 
 <meta charset="UTF-8"> 
 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
 </head> 
 <body> 
 <div> 
 <form action="fatorial" method="post"> 
 n=<input type="number" name="n"> 
 <input type="submit" value="calcular"> 
 </form> 
 </div> 
 </body> 
</html> 
 
Arquivo: servlet.java 
public class servlet extends HttpServlet { 
 
 
 protected void doPost(HttpServletRequest request, HttpServletResponse response) 
 throws ServletException, IOException { 
 response.setContentType("text/html;charset=UTF-8"); 
 try (PrintWriter out = response.getWriter()) { 
 out.println("<!DOCTYPEhtml>"); 
 out.println("<html>"); 
 out.println("<head>"); 
 out.println("<title>Servlet servlet</title>"); 
 out.println("</head>"); 
 out.println("<body>"); 
 out.println((new fatorial(Integer.parseInt(request.getParameter("n"))))); 
 out.println("<form action=\"fatorial\" method=\"post\">\n" + 
" n=<input type=\"number\" name=\"n\" 
value="+Integer.parseInt(request.getParameter("n"))+">\n" + 
" <input type=\"submit\" value=\"calcular\">\n" + 
" </form>"); 
 out.println("</body>"); 
 out.println("</html>"); 
 } 
 } 
} 
 
Arquivo: fatorial.java 
public class fatorial { 
 private int n; 
 
 public fatorial(int n) 
 { 
 this.n=n; 
 } 
 
 private int calculo(int n) 
 { 
 if(n<=1) return 1; 
 else return n*calculo(n-1); 
 } 
 
 @Override 
 public String toString() 
 { 
 if(this.n>=0) 
 return "O fatorial de " + this.n + " vale " + String.valueOf(calculo(this.n)); 
 else 
 return "Não existe fatorial de número negativo (n="+this.n+")"; 
 } 
} 
 
Fibonacci 
 
Implemente um portal em Java usando Servlet, JSP no padrão MVC. 
 
 
Arquivo: index.html 
<html> 
 <head> 
 <title>TODO supply a title</title> 
 <meta charset="UTF-8"> 
 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
 </head> 
 <body> 
 <form action="calculo" method="post"> 
 n:<input type="number" name="n"> 
 <input type="submit" name="calcular"> 
 </form> 
 </body> 
</html> 
 
Arquivo: Calculo.java 
public class Calculo extends HttpServlet { 
 
 
 protected void doPost(HttpServletRequest request, HttpServletResponse response) 
 throws ServletException, IOException { 
 response.setContentType("text/html;charset=UTF-8"); 
 
 try(PrintWriter out = response.getWriter()) { 
 try{ 
 Fibonacci f = new Fibonacci(Integer.parseInt(request.getParameter("n"))); 
 
 request.setAttribute("fibonacci", f.calculo()); 
 request.setAttribute("n", request.getParameter("n")); 
 ServletContext app = this.getServletContext(); 
 RequestDispatcher rd = app.getRequestDispatcher("/resposta.jsp"); 
 rd.forward(request, response); 
 } 
 catch(NumberFormatException e) 
 { 
 request.setAttribute("error", "Entrada Inv&aacute;lida: par&acirc;metro 
n&atilde;o &eacute; um n&uacute;mero v&aacute;lido."); 
 ServletContext app = this.getServletContext(); 
 RequestDispatcher rd = app.getRequestDispatcher("/error.jsp"); 
 rd.forward(request, response); 
 } 
 catch(Exception e) 
 { 
 request.setAttribute("error", "Erro no processamento da 
aplica&ccedil;&atilde;o"); 
 ServletContext app = this.getServletContext(); 
 RequestDispatcher rd = app.getRequestDispatcher("/error.jsp"); 
 rd.forward(request, response); 
 } 
 } 
 } 
 
 
 
} 
 
 
Arquivo: Fibonacci.java 
public class Fibonacci { 
 private int n; 
 
 
 public int getN() { 
 return n; 
 } 
 
 
 public void setN(int n) { 
 this.n = n; 
 } 
 
 public Fibonacci(int n) 
 { 
 this.setN(n>=0?n:0); 
 } 
 
 private int recursivo(int n) 
 { 
 if(n==0 || n==1) return n; 
 return recursivo(n-1) + recursivo(n-2); 
 } 
 
 public int calculo() 
 { 
 return recursivo(this.getN()); 
 } 
} 
 
Arquivo: resposta.jsp 
<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE html> 
<html> 
 <head> 
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
 <title>JSP Page</title> 
 </head> 
 <body> 
 O Fibonacci de <%=request.getAttribute("n")%> vale 
<%=request.getAttribute("fibonacci")%>. 
 </body> 
</html> 
 
Arquivo: error.jsp 
 
<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE html> 
<html> 
 <head> 
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
 <title>JSP Page</title> 
 </head> 
 <body> 
 
 Sua requisi&ccedil;&atilde;o n&atilde;o pode ser processada: 
 <% 
 out.println(request.getAttribute("error")); 
 %> 
 </body> 
</html> 
Calculadora 
 
 
Implemente uma calculadora em um portal em Java. Esta calculadora deverá realizar as 
quatro operações e deverá ser impresso na tela todas as operações que foi realizada. 
 
 
Arquivo: index.html 
<html> 
 <head> 
 <title></title> 
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
 </head> 
 <body> 
 <form action="calculadora" method="post"> 
 operando1:<input type="text" name="operando1"><br> 
 operando2:<input type="text" name="operando2"><br> 
 <select name="operacao"> 
 <option option="+">+</option> 
 <option option="-">-</option> 
 <option option="/">/</option> 
 <option option="*">*</option> 
 </select><br> 
 <input type="submit"> 
 </form> 
 </body> 
</html> 
 
 
Arquivo: calculadora.java 
public class calculadora extends HttpServlet { 
 
 
 protected void doPost(HttpServletRequest request, HttpServletResponse response) 
 throws ServletException, IOException { 
 response.setContentType("text/html;charset=UTF-8"); 
 PrintWriter out = response.getWriter(); 
 try { 
 double operando1 = Double.parseDouble(request.getParameter("operando1")); 
 double operando2 = Double.parseDouble(request.getParameter("operando2")); 
 char operacao = request.getParameter("operacao").charAt(0); 
 double resultado = 0; 
 String Resultado = ""; 
 switch(operacao) 
 { 
 case '+': resultado = operando1 + operando2; break; 
 case '-': resultado = operando1 - operando2; break; 
 case '*': resultado = operando1 * operando2; break; 
 case '/': if(operando2!=0) resultado = operando1 / operando2; break; 
 } 
 
 String Historico = 
(request.getParameter("historico")==null)?"":request.getParameter("historico"); 
 
 if(!(operando2==0 && operacao=='/')) 
 { 
 Historico += operando1; 
 Historico += operacao; 
 Historico += operando2; 
 Historico += "="; 
 Historico += resultado; 
 Historico += "<br>"; 
 } 
 else 
 out.println("ERRO: DIVISAO POR ZERO!"); 
 
 out.println(Historico); 
 
 out.println("<form action=\"calculadora\" method=\"post\">"); 
 if(!(operando2==0 && operacao=='/')) 
 { 
 out.println("operando1:<input type=\"text\" name=\"operando1\" 
value="+resultado+"><br>"); 
 out.println("operando2:<input type=\"text\" name=\"operando2\" ><br>"); 
 } 
 else 
 { 
 out.println("operando1:<input type=\"text\" name=\"operando1\"><br>"); 
 out.println("operando2:<input type=\"text\" name=\"operando2\"><br>"); 
 } 
 out.println("<input type=\"hidden\" name=\"historico\"value='"+Historico+"'><br>"); 
 out.println("<select name=\"operacao\">"); 
 out.println("<option option=\"+\">+</option>"); 
 out.println("<option option=\"-\">-</option>"); 
 out.println("<option option=\"/\">/</option>"); 
 out.println("<option option=\"*\">*</option>"); 
 out.println("</select><br>"); 
 out.println("<input type=\"submit\">"); 
 out.println("</form>"); 
 
 
 } finally { 
 out.close(); 
 } 
 } 
 
} 
 
 
Código Morse 
 
Implemente um portal em Java que traduza uma frase fornecida por um usuário em código 
Morse. 
 
Arquivo: index.html 
<!DOCTYPE html> 
<html> 
 <head> 
 <title></title> 
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
 </head> 
 <body> 
 <form action="morse" method="post"> 
 Palavra:<input type="text" name="palavra"><input type="submit"> 
 </form> 
 </body> 
</html> 
 
Arquivo: morse.java 
public class morse extends HttpServlet { 
 
 
 protected void doPost(HttpServletRequest request, HttpServletResponse response) 
 throws ServletException, IOException { 
 response.setContentType("text/html;charset=UTF-8"); 
 PrintWriter out = response.getWriter(); 
 try { 
 
 String palavraMorse = (new 
morsedecode()).execute(request.getParameter("palavra").toUpperCase()); 
 
 out.println("<html>"); 
 out.println("<head>"); 
 out.println("<title>Servlet morse</title>"); 
 out.println("</head>"); 
 out.println("<body>"); 
 out.println("<body>"); 
 out.println("A palavra decodificada &eacute;:" + palavraMorse +"<br>"); 
 
 out.println("<form action=\"morse\" method=\"post\">"); 
 out.println("Palavra:<input type=\"text\" name=\"palavra\"><input 
type=\"submit\">"); 
 out.println("</form>"); 
 out.println("</body>"); 
 out.println("</html>"); 
 } finally { 
 out.close(); 
 } 
 } 
 
} 
 
Arquivo: morsedecode.java 
public class morsedecode { 
 
 protected HashMap CodigoMorse; 
 
 public morsedecode() 
 { 
 CodigoMorse = new HashMap<String, String>(); 
 CodigoMorse.put("A", ".-"); 
 CodigoMorse.put("B", "-..."); 
 CodigoMorse.put("C", "-.-."); 
 CodigoMorse.put("D", "-.."); 
 CodigoMorse.put("E", "."); 
 CodigoMorse.put("F", "..-."); 
 CodigoMorse.put("G", "--."); 
 CodigoMorse.put("H", "...."); 
 CodigoMorse.put("I", ".."); 
 CodigoMorse.put("J", ".---"); 
 CodigoMorse.put("K", "-.-"); 
 CodigoMorse.put("L", ".-.."); 
 CodigoMorse.put("M", "--"); 
 CodigoMorse.put("N", "-."); 
 CodigoMorse.put("O", "---"); 
 CodigoMorse.put("P", ".--."); 
 CodigoMorse.put("Q", "--.-"); 
 CodigoMorse.put("R", ".-."); 
 CodigoMorse.put("S", "..."); 
 CodigoMorse.put("T", "-"); 
 CodigoMorse.put("U", "..-"); 
 CodigoMorse.put("V", "...-"); 
 CodigoMorse.put("W", ".--"); 
 CodigoMorse.put("X", "-..-"); 
 CodigoMorse.put("Y", "-.--"); 
 CodigoMorse.put("Z", "--.."); 
 CodigoMorse.put("1", ".----"); 
 CodigoMorse.put("2", "..---"); 
 CodigoMorse.put("3", "...--"); 
 CodigoMorse.put("4", "....-"); 
 CodigoMorse.put("5", "....."); 
 CodigoMorse.put("6", "-...."); 
 CodigoMorse.put("7", "--..."); 
 CodigoMorse.put("8", "---.."); 
 CodigoMorse.put("9", "----."); 
 CodigoMorse.put("0", "-----"); 
 
 } 
 
 public String execute(String palavra) { 
 String resposta = ""; 
 
 for(int i=0; i<palavra.length(); i++) 
 resposta += this.CodigoMorse.get(palavra.substring(i, i+1)); 
 
 return resposta; 
 } 
} 
 
 
Inversão de palavras 
 
Implemente um portal em java que inverta uma palavra fornecida pelo usuário 
 
Arquivo: index.jsp 
<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE html> 
<html> 
 <head> 
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
 <title>JSP Page</title> 
 </head> 
 <body> 
 <form action="acao.jsp" method="post"> 
 <input type="text" name="palavra"> 
 <input type="submit"> 
 </form> 
 </body> 
</html> 
 
Arquivo: acao.jsp 
<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE html> 
<html> 
 <head> 
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
 <title>JSP Page</title> 
 </head> 
 <body> 
 <% 
 String palavra = request.getParameter("palavra"); 
 
 for(int i=palavra.length()-1; i>=0; i--) 
 out.println(palavra.charAt(i)); 
 %> 
 </body> 
</html> 
 
 
 
Outra Solução: 
 
 
Arquivo: index.jsp 
<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE html> 
<html> 
 <head> 
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
 <title>JSP Page</title> 
 </head> 
 <body> 
 <form action="acao2.jsp" method="post"> 
 Palavra: <input type="text" name="palavra"><br> 
 Método: <select name="metodo"> 
 <option value="0"> Com String</option> 
 <option value="1"> Com StringBuilder</option> 
 <input type="submit"> 
 </select> 
 </form> 
 </body> 
</html> 
 
 
arquivo: acao2.jsp 
<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE html> 
<html> 
 <head> 
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
 <title>JSP Page</title> 
 </head> 
 <body> 
 <%! String palavra; 
 StringBuilder palavra2; 
 int metodo; 
 %> 
 
 <% 
 palavra = request.getParameter("palavra"); 
 palavra2 = new StringBuilder(request.getParameter("palavra")); 
 metodo = Integer.parseInt(request.getParameter("metodo")); 
 
 switch (metodo) 
 { 
 case 0: String palavraInvertida = ""; 
 for(int i=0; i<palavra.length(); i++) 
 palavraInvertida += palavra.charAt(palavra.length()-i-1); 
 out.println(palavraInvertida); 
 break; 
 case 1: out.println(palavra2.reverse()); 
 } 
 %> 
 
 
 </body> 
</html> 
MMC 
 
Implemente uma página que calcule o MMC de dois números fornecidos pelo usuário 
 
Arquivo: index.jsp 
<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE html> 
<html> 
 <head> 
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
 <title>JSP Page</title> 
 </head> 
 <body> 
 <form action="acao.jsp" method="post"> 
 n1: <input type="text" name="n1"><br> 
 n2: <input type="text" name="n2"><br> 
 <input type="submit"> 
 </form> 
 </body> 
</html> 
 
 
Arquivo: acao.jsp 
<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<%! 
int MMC(int num1, int num2) 
{ 
 int x,y,r,mmc; 
 
 x = num1; 
 y = num2; 
 do 
 { 
 r = x % y; 
 x = y; 
 y = r; 
 } 
 while (r != 0); 
 
 mmc = (num1 * num2) / x;return mmc; 
} 
%> 
 
<!DOCTYPE html> 
<html> 
 <head> 
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
 <title>JSP Page</title> 
 </head> 
 <body> 
 <%=MMC(Integer.parseInt(request.getParameter("n1")), 
Integer.parseInt(request.getParameter("n2")))%> 
 </body> 
</html> 
 
Círculo (Área e Perímetro), Tipo de triângulo e Cifra de César 
 
Implemente um programa em Java para web para: 
Questão 1) Calcular a área e o perímetro de um círculo; 
Questão 2) Verificar se um triângulo é isósceles, escaleno ou equilátero; e 
Questão 3) Encriptar uma palavra fornecida pelo usuário, utilizando a Cifra de César. 
 
Arquivo: index.html 
<!DOCTYPE html> 
<html> 
 <head> 
 <title>AV1 - Desenvolvimento de Aplicações Web</title> 
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
 </head> 
 <body> 
 <a href="q1.html">Questão 1</a><br> 
 <a href="q2.html">Questão 2</a><br> 
 <a href="q3.html">Questão 3</a> 
 </body> 
</html> 
 
 
arquivo: q1.html 
<html> 
 <head> 
 <title></title> 
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
 </head> 
 <body> 
 <form action="servletq1" method="post"> 
 Raio: <input type="text" name="raio"> 
 <input type="submit"> 
 </form> 
 </body> 
</html> 
 
arquivo: q2.html 
<!DOCTYPE html> 
<html> 
 <head> 
 <title></title> 
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
 </head> 
 <body> 
 <form action="servletq2" method="post"> 
 L1: <input type="text" name="l1"><br> 
 L2: <input type="text" name="l2"><br> 
 L3: <input type="text" name="l3"><br> 
 <input type="submit"> 
 </form> 
 </body> 
</html> 
 
arquivo:q3.html 
<!DOCTYPE html> 
<html> 
 <head> 
 <title></title> 
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
 </head> 
 <body> 
 <form action="servletq3" method="post"> 
 <input type="text" name="texto"> 
 <input type="submit"> 
 </form> 
 </body> 
</html> 
 
 
arquivo: servletq1.java 
public class servletq1 extends HttpServlet { 
 
 protected void doPost(HttpServletRequest request, HttpServletResponse response) 
 throws ServletException, IOException { 
 response.setContentType("text/html;charset=UTF-8"); 
 PrintWriter out = response.getWriter(); 
 try { 
 double raio = Double.parseDouble(request.getParameter("raio")); 
 
 out.println("<html>"); 
 out.println("<head>"); 
 out.println("<title>Servlet servletq1</title>"); 
 out.println("</head>"); 
 out.println("<body>"); 
 out.println("Área: " + Math.PI * raio * raio + "<br>"); 
 out.println("Perímetro: " + 2 * Math.PI * raio + "<br>"); 
 out.println("</body>"); 
 out.println("</html>"); 
 } finally { 
 out.close(); 
 } 
 } 
 
} 
 
 
arquivo: servletq2.java 
 public class servletq2 extends HttpServlet { 
 
 protected void doPost(HttpServletRequest request, HttpServletResponse response) 
 throws ServletException, IOException { 
 response.setContentType("text/html;charset=UTF-8"); 
 PrintWriter out = response.getWriter(); 
 try { 
 double l1 = Double.parseDouble(request.getParameter("l1")); 
 double l2 = Double.parseDouble(request.getParameter("l2")); 
 double l3 = Double.parseDouble(request.getParameter("l3")); 
 String triangulo=""; 
 
 if(l1==l2 && l2==l3) 
 triangulo = "Equilátero"; 
 else 
 if(l1!=l2 && l1!=l3 && l2!=l3) 
 triangulo = "Escaleno"; 
 else 
 triangulo = "Isósceles"; 
 
 out.println("<html>"); 
 out.println("<head>"); 
 out.println("<title>Servlet servletq2</title>"); 
 out.println("</head>"); 
 out.println("<body>"); 
 out.println("Esse triângulo é " + triangulo); 
 out.println("</body>"); 
 out.println("</html>"); 
 } finally { 
 out.close(); 
 } 
 } 
 
} 
 
arquivo: servletq3.java 
public class servletq3 extends HttpServlet { 
 
 protected String CifraCesar(String textoClaro) 
 { 
 String textoCifrado = ""; 
 textoClaro = textoClaro.toUpperCase(); 
 
 for(int i=0; i<textoClaro.length(); i++){ 
 if(textoClaro.charAt(i)-65<26 && textoClaro.charAt(i)-65>=0) 
 textoCifrado += (Character.toString((char)((textoClaro.charAt(i)-
65+3)%26+65))); 
 else 
 textoCifrado += textoClaro.charAt(i); 
 
 } 
 return textoCifrado; 
 } 
 
 
 
 protected void doPost(HttpServletRequest request, HttpServletResponse response) 
 throws ServletException, IOException { 
 response.setContentType("text/html;charset=UTF-8"); 
 PrintWriter out = response.getWriter(); 
 try { 
 /* 
 * TODO output your page here. You may use following sample code. 
 */ 
 out.println("<html>"); 
 out.println("<head>"); 
 out.println("<title>Servlet servletq3</title>"); 
 out.println("</head>"); 
 out.println("<body>"); 
 out.println("<h1>Texto cifrado é " + CifraCesar(request.getParameter("texto")) + 
"</h1>"); 
 out.println("</body>"); 
 out.println("</html>"); 
 } finally { 
 out.close(); 
 } 
 } 
 
} 
 
Trocar Maiúscula por Minúscula 
 
Implemente um portal em Java que troque maiúsculas por minúsculas. 
 
Arquivo: index.html 
<!DOCTYPE html> 
<html> 
 <head> 
 <title></title> 
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
 </head> 
 <body> 
 <form action="acao" method="post"> 
 Palavra: <input type="text" name="palavra"> 
 <input type="submit"> 
 </form> 
 
 </body> 
</html> 
 
arquivo: MaiusculasMinusculas.java 
public class MaiusculasMinusculas { 
private String palavra; 
 
 public String getPalavra() { 
 return palavra; 
 } 
 
 public void setPalavra(String palavra) { 
 this.palavra = palavra; 
 } 
 
 
 public MaiusculasMinusculas(String palavra) 
 { 
 this.setPalavra(palavra); 
 } 
 
 private char paraMaiuscula(char letra) 
 { 
 return (char)(letra-32); 
 } 
 
 private char paraMinuscula(char letra) 
 { 
 return (char)(letra+32); 
 } 
 
 public String converter() 
 { 
 String novaPalavra=""; 
 
 for(int i=0; i<palavra.length(); i++) 
 { 
 novaPalavra += 
((palavra.charAt(i)>90)?paraMaiuscula(palavra.charAt(i)):paraMinuscula(palavra.charAt
(i))); 
 } 
 
 return novaPalavra; 
 } 
} 
 
arquivo: acao.java 
public class acao extends HttpServlet { 
 
 protected void doPost(HttpServletRequest request, HttpServletResponse response) 
 throws ServletException, IOException { 
 response.setContentType("text/html;charset=UTF-8"); 
 PrintWriter out = response.getWriter(); 
 try { 
 MaiusculasMinusculas m = new 
MaiusculasMinusculas(request.getParameter("palavra")); 
 
 out.println(m.converter());} finally { 
 out.close(); 
 } 
 } 
 
} 
 
 
Palindrome 
 
Implemente um portal em Java que verifique se uma palavra fornecida pelo usuário é 
Palindrome ou não 
 
Arquivo: index.html 
<!DOCTYPE html> 
<html> 
 <head> 
 <title></title> 
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
 </head> 
 <body> 
 <form action="palindrome" method="post"> 
 palavra:<input type="text" name="palavra"><input type="submit"> 
 </form> 
 </body> 
</html> 
 
 
arquivo: Texto.java 
public class Texto { 
 public boolean Palindrome(String palavra) 
 { 
 boolean EhPalindrome=true; 
 
 for(int i=0; i<=(palavra.length()/2); i++) 
 { 
 if(palavra.charAt(i)!=palavra.charAt(palavra.length()-1-i)) 
 EhPalindrome = false; 
 } 
 
 return EhPalindrome; 
 } 
} 
 
 
arquivo: palindrome.java 
public class palindrome extends HttpServlet { 
 
 protected void doPost(HttpServletRequest request, HttpServletResponse response) 
 throws ServletException, IOException { 
 response.setContentType("text/html;charset=UTF-8"); 
 PrintWriter out = response.getWriter(); 
 try { 
 String palavra = request.getParameter("palavra"); 
 
 Texto text = new Texto(); 
 
 out.println((text.Palindrome(palavra) ?"É Palindrome":"Não é palindrome")); 
 
 } finally { 
 out.close(); 
 } 
 } 
 
} 
 
 
Anagrama 
 
 
Implemente um portal em Java para verificar se duas palavras fornecidas pelo usuário são 
anagramas. 
 
 
Arquivo:index.html 
<html> 
 <head> 
 <title>TODO supply a title</title> 
 <meta charset="UTF-8"> 
 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
 </head> 
 <body> 
 <div> 
 <form action="ServletAnagrama" method="get"> 
 Palavra1: <input type="text" name="palavra1"><br> 
 Palavra2: <input type="text" name="palavra2"><br> 
 <input type="submit"> 
 </form> 
 </div> 
 </body> 
</html> 
 
 
arquivo:Anagrama.java 
public class Anagrama { 
 public boolean verifica(String palavra1, String palavra2){ 
 char P1[] = palavra1.toCharArray(); 
 char P2[] = palavra2.toCharArray(); 
 Arrays.sort(P1); 
 Arrays.sort(P2); 
 
 return Arrays.equals(P1, P2); 
 } 
 public static void main(String args[]){ 
 Anagrama a = new Anagrama(); 
 System.out.println(a.verifica("amor", "roma")?"S":"N"); 
 System.out.println(a.verifica("amor", "ramo")?"S":"N"); 
 System.out.println(a.verifica("amor", "rama")?"S":"N"); 
 System.out.println(a.verifica("amor", "romo")?"S":"N"); 
 System.out.println(a.verifica("amarganas", "granamasa")?"S":"N"); 
 System.out.println(a.verifica("amarganas", "gramasa")?"S":"N"); 
 } 
} 
 
 
arquivo: ServletAnagrama.java 
public class ServletAnagrama extends HttpServlet { 
 
 protected void doPost(HttpServletRequest request, HttpServletResponse response) 
 throws ServletException, IOException { 
 response.setContentType("text/html;charset=UTF-8"); 
 try (PrintWriter out = response.getWriter()) { 
 
 String palavra1 = request.getParameter("palavra1"); 
 String palavra2 = request.getParameter("palavra2"); 
 
 out.print(palavra1 + " e " + palavra2); 
 
 if(!(new Anagrama()).verifica(palavra1, palavra2)) 
 out.print(" não"); 
 
 out.println(" são anagramas"); 
 
 } 
 } 
} 
CPF 
 
 
Implemente um portal em Java que verifique se um CPF fornecido pelo usuário é válido. 
 
 
Arquivo:index.html 
<html> 
 <head> 
 <title>TODO supply a title</title> 
 <meta charset="UTF-8"> 
 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
 </head> 
 <body> 
 <form action="validar.jsp" method="post"> 
 CPF: <input type="text" name="numero"><br> 
 <input type="submit"> 
 </form> 
 </body> 
</html> 
 
 
 
arquivo: validar.jsp 
<%@page import="cadastros.CPF"%> 
<%@page contentType="text/html" pageEncoding="UTF-8"%> 
 
 
<% 
 String numero = request.getParameter("numero"); 
%> 
 
<jsp:useBean class="cadastros.CPF" id="cpf"></jsp:useBean> 
 
<% 
 cpf.setCodigo(numero); 
%> 
 
<%=cpf.validar()?"Válido":"Inválido"%> 
 
 
arquivo:CPF.java 
public class CPF { 
 private String codigo; 
 
 public String getCodigo() { 
 return codigo; 
 } 
 
 public void setCodigo(String codigo) { 
 this.codigo = codigo; 
 } 
 
 private int digito(String sequencia){ 
 int acumulado = 0; 
 int tamanho = sequencia.length(); 
 int J = 0; 
 for(int i = (tamanho+1), j = 0; j < tamanho; i--, j++){ 
 acumulado += (sequencia.charAt(j)-'0')*i; 
 } 
 J = acumulado % 11; 
 
 if(J==0 || J==1)J=0; 
 else J = 11-J; 
 
 return J; 
 } 
 
 public boolean validar(){ 
 if(codigo.charAt(9)==(digito(codigo.substring(0, 9))+'0')) 
 if(codigo.charAt(10)==(digito(codigo.substring(0, 10))+'0')) 
 return true; 
 return false; 
 } 
 
 public static void main(String args[]){ 
 String cpf = "70477802036"; 
 CPF c = new CPF(); 
 c.setCodigo(cpf); 
 System.out.println(c.validar()?"Válido":"Não Válido"); 
 } 
 
} 
Cartão de Crédito. 
 
Para a solução, considere o seguinte texto introdutório: 
 
Cartão de crédito, figura 1, é usado forma de pagamento eletrônico. É um cartão de 
plástico que pode conter ou não um chip e apresenta na frente o nome do portador, 
número do cartão e data de validade (pelo menos) e, no verso, um campo para assinatura 
do cliente, o número de segurança (CVV) e a tarja magnética (geralmente preta). A 
maioria dos cartões de crédito tem forma e tamanho padronizados, como especificado 
pelo padrão do ISO 7810. 
 
O cartão de crédito pode ser usado como meio de pagamento para comprar um bem ou 
contratar um serviço. O titular recebe mensalmente a fatura para pagamento no 
endereço indicado e pode escolher pagar o total cobrado, somente o mínimo ou algum 
valor intermediário, postergando o pagamento do restante para o mês seguinte mediante 
cobrança de juros. 
 
 
Figura 1: Cartão de Crédito 
 
O número do cartão de crédito é formado pela seguinte sequencia: ABBB BBCC CCCC 
CCCD, onde: 
- A: é o identificador principal da indústria, de acordo com a tabela 1; 
- BBBBB: é o identificador da instituição financeira, de acordo com a tabela 2; 
- CCCCCCCCC: indica o número da conta do usuário; e 
- D: é o dígito verificador. 
 
 
 
 
 
Tabela 1: Identificador da Industria 
Valor Descrição 
1 e 2 Companhias Aéreas 
3 Viagem e Entretenimento 
4 e 5 Bancos e Instituições financeiras 
6 Marketing e Bancos 
7 Petróleo 
8 Telecomunicações 
9 Atribuição nacional 
 
 
 
 
Tabela 2: Operadora da instituição financeira 
Operadora Valor (ABBBBB) 
Visa 4XXXXX 
Mastercard 51XXXX 55XXXX 
Amex 34XXXX 37XXXX 
Diners 
300XXX 
305XXX 
36XXXX 
38XXXX 
A verificação da validade é realizada através de um operação matemática utilizando-se 
o dígitos do cartão. Para isso, é realizada a multiplicação de cada dígito pelo número 2 
ou pelo número 1, de forma alternada, conforme tabela 3,tendo tomado como base o 
número do cartão de crédito presente na figura 1. 
 
Tabela 3: Primeira parte do exemplo de verificação da validade do número de cartão de crédito. 
 
Formato do 
número de 
cartão de 
crédito 
A B B B B B C C C C C C C C C D 
Número do 
cartão de 
crédito 
1 2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 
Fator 
multiplicativo 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 
 
Realiza-se a multiplicação número a número, conforme tabela 4. 
 
Tabela 4: Segunda parte do exemplo de verificação da validade do número de cartão de 
crédito. 
 
Número do 
cartão de 
crédito 
1 2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 
Fator 
multiplicativo 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 
Resultado 2 2 6 4 10 6 14 8 18 8 14 6 10 4 6 2 
 
 
Quando o resultado da multiplicação realizada na operação anterior for um número 
maior do que 10, os algarismos que compõe o número são somados, resultando na tabela 
5. 
 
Tabela 5: Segunda parte do exemplo de verificação da validade do número de cartão de 
crédito. 
 
Número do 
cartão de 
crédito 
1 2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 
Fator 
multiplicativo 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 
Resultado 
atualizado 2 2 6 4 
10 
1 6 
14 
5 8 
18 
9 8 
14 
5 6 
10 
1 4 6 2 
 
 
A partir do resultado atualizado, os valores são somados, conforme equação 1. 
 2 + 2 + 6 + 4 + 1 + 6 + 5 + 8 + 9 + 8 + 5 + 6 + 1 + 4 + 6 + 2 = 74 
Eq. 1 
 
O valor resultado, obrigatoriamente, deverá ser divisível por 10. Se não o for, o número 
do cartão de crédito é inválido, conforme obtido através da equação 1. 
 
O cartão de crédito de número 4417 1234 5678 9113, por exemplo, é válido, uma vez 
que a operação realizada com os seus algarismos resulta no número 70 que é divisível 
por 10. 
 
 
a) Implemente uma aplicação para linha de comando, usando a linguagem Java, que, 
recebendo o número de cartão de crédito, por exemplo 4417 1234 5678 9113, informe se o 
mesmo é válido ou inválido. 
 
Implemente uma aplicação para web, usando servlet ou JSP (não deverá ser usado javascript), 
que, a partir do fornecimento de parte do número do cartão de crédito, por exemplo 4417 1234 
5678 911, informe: 
b.1) O identificador da indústria, vide tabela 1; 
b.2) A operadora da instituição financeira (strings e imagem da bandeira), vide tabela 2; 
b.3) O dígito verificador D, conforme explicação realizada após a figura 1. 
 
Condições de implementação, deverão ser seguidas, caso contrário será penalizado: 
I) Deverá existir uma classe chamada CartaoCredito que deverá possuir TODAS as 
funcionalidades necessárias para verificação, validação, etc, relativo ao cartão de crédito; 
 
II) A classe citada no item I deverá, obrigatoriamente, ser usada nas duas questões; 
 
III) A classe que fará a interação do usuário deverá apenas instanciar outras classes e 
fornecer a saída necessária para o usuário. Não é permitido fazer operações nesta classe. 
 
Resolução 
 
arquivo: index.html 
<html> 
 <head> 
 <title>Cartão de Crédito</title> 
 <meta charset="UTF-8"> 
 <meta name="viewport" content="width=device-width, 
initial-scale=1.0"> 
 </head> 
 <body> 
 <form action="validar" method="post"> 
 número: <input type="text" name="numero"> 
 <input type="submit"> 
 </form> 
 </body> 
</html> 
 
arquivo: CartaoCredito.java 
public class CartaoCredito { 
 
 private String numero; 
 
 public String getNumero() { 
 return numero; 
 } 
 
 public void setNumero(String numero) { 
 this.numero = numero; 
 } 
 
 public CartaoCredito(String numero) { 
 this.numero = numero; 
 } 
 
 public CartaoCredito() { 
 } 
 
 public String getIdentificadorIndustria() { 
 switch (this.getNumero().charAt(0)) { 
 case '1': 
 case '2': 
 return ("Companhias Aéreas"); 
 case '3': 
 return ("Viagem e Entretenimento"); 
 case '4': 
 case '5': 
 return ("Bancos e Instituições financeiras"); 
 case '6': 
 return ("Marketing e Bancos"); 
 case '7': 
 return ("Petróleo"); 
 case '8': 
 return ("Telecomunicações"); 
 case '9': 
 return ("Atribuição nacional"); 
 default: 
 return ("Erro"); 
 } 
 } 
 
 public String getInstituicaoFinanceira() { 
 switch (this.getNumero().charAt(0)) { 
 case '4': 
 return "Visa"; 
 case '5': 
 switch (this.getNumero().charAt(1)) { 
 case '1': 
 case '5': 
 return "Mastercard"; 
 default: 
 return "Erro"; 
 } 
 case '3': 
 switch (this.getNumero().charAt(1)) { 
 case '4': 
 case '7': 
 return "Amex"; 
 case '6': 
 case '8': 
 return "Diners"; 
 case '0': 
 switch (this.getNumero().charAt(2)) { 
 case '0': 
 case '5': 
 return "Diners"; 
 default: 
 return "Erro"; 
 } 
 default: return "Erro"; 
 } 
 default: return "Erro"; 
 } 
 } 
 
 public char getDigitoVerificador(){ 
 char caracteres[] = this.getNumero().substring(0, this.getNumero().length()-
1).toCharArray(); 
 int acumulado = 0; 
 int fator=2; 
 int multi; 
 for(char digito: caracteres){ 
 multi = (digito-'0')*fator; 
 multi = (multi>=10)?(multi-9):multi; 
 acumulado+=multi; 
 fator=(fator==1)?2:1; 
 } 
 return (char) (10 - (acumulado%10) + '0'); 
 } 
 
 public boolean isValido(){ 
 return 
this.getDigitoVerificador()==this.getNumero().charAt(this.getNumero().length()-1); 
 } 
} 
 
arquivo: CartaoCreditoBandeira.java 
public class CartaoCreditoBandeira extends CartaoCredito{ 
 public String getBandeira(){ 
 switch(this.getInstituicaoFinanceira()){ 
 case "Visa": return "visa.png"; 
 case "Mastercard": return "mastercard.jpg"; 
 case "Amex": return "amex.jpg"; 
 case "Diners": return "diners.png"; 
 default: return ""; 
 } 
 } 
 
 public CartaoCreditoBandeira(String numero) { 
 super(numero); 
 } 
} 
 
arquivo: validar.java 
 
public class validar extends HttpServlet { 
 
 
 protected void doPost(HttpServletRequest request, HttpServletResponse 
response) 
 throws ServletException, IOException { 
 response.setContentType("text/html;charset=UTF-8"); 
 try (PrintWriter out = response.getWriter()) { 
 CartaoCreditoBandeira c = new 
CartaoCreditoBandeira(request.getParameter("numero")+"X"); 
 out.println(c.getIdentificadorIndustria()); 
 out.println(c.getInstituicaoFinanceira() + "<img src='"+c.getBandeira()+"'>"); 
 out.println("Dígito Verificador: " + c.getDigitoVerificador()); 
 } 
 } 
}

Continue navegando