Lista de Exercícios de Projeto e Implementação Orientado a Objeto – Lista 2
Questão 1
Servlet é uma classe Java usada para estender as funcionalidades de um servidor. Apesar dos servlets poderem responder a quaisquer tipos de requisições, eles normalmente são usados para estender as aplicações hospedadas por servidores web, desta forma eles podem ser imaginados como Applets Java que rodam em servidores em vez de rodarem nos navegadores web.
Tendo como base o funcionamento dos Servlets, pode-se afirmar que:
a) Servlet não aciona outro Servlet. Este é capaz de receber uma requisição, apenas processá-la.
b) Um Servlet pode apenas processar requisições do tipo “get”, isto é, aquelas originadas de um formulário web.
c) Os Servlets são executados sempre no computador do usuário, nunca no servidor Web.
d) Apesar dos Servlets serem baseados na tecnologia Java, não há a necessidade de uma Máquina Virtual Java para executá-lo.
e) Para que um Servlet possa ser executado é necessário que um Container Java esteja em funcionamento.
Questão 2
(TRE-CE/2012) No contexto do ciclo de vida de um servlet, considere:
I. Quando o servidor recebe uma requisição, ela é repassada para o container que, por sua vez, carrega a classe na memória e cria uma instância da classe do servlet.
II. Quando um servlet é carregado pela primeira vez para a máquina virtual Java do servidor, o método init() é invocado, para preparar recursos para a execução do serviço ou para estabelecer conexão com outros serviços.
III. Estando o servlet pronto para atender as requisições dos clientes, o container cria um objeto de requisição (ServletRequest) e de resposta (ServletResponse) e depois chama o método service(), passando os objetos como parâmetros.
IV. O método destroy() permite liberar os recursos que foram utilizados, sendo invocado quando o servidor estiver concluindo sua atividade.
Está correto o que se afirma em:
a) I, II e III, apenas.
b) I, II e IV, apenas.
c) I, III e IV, apenas.
d) II, III e IV, apenas.
e) I, II, III e IV.
Questão 3
3. (JUCESC/2013) Assinale a alternativa que defne corretamente um Servlet:
a) É um método da JPA utilizado na persistência assíncrona de dados.
b) É um componente que roda do lado do cliente para tratar problemas de comunicação.
c) É uma classe Java utilizada para estender as capacidades de um servidor.
d) É uma biblioteca JBOSS que emula servidores no lado do cliente.
e) É uma JSP que possibilita a execução de código no lado do cliente, mesmo sem comunicação com um servidor.
Questão 4
(BRDE/2012) Sobre Servlets, analise as assertivas e assinale a alternativa que aponta as corretas.
I. Servlets são implementadas como arquivos de classe da Linguagem Java.
II. Servlets são independentes de plataforma, de modo que podem ser executadas em diferentes servidores, em diferentes sistemas operacionais.
III. As Servlets podem acessar qualquer uma das APIs Java. Uma Servlet pode usar a API JDBC para acessar e armazenar dados ou para acessar objetos remotos.
IV. Ao criar uma Servlet, somos obrigados a reescrever nove métodos presentes à interface que foi implementada.
a) Apenas I e II.
b) Apenas I e III.
c) Apenas II e III.
d) Apenas I, II e III.
e) I, II, III e IV.
Questão 5
(FUNDUNESP/2013) Considere o seguinte trecho do arquivo web.xml de um servidor Tomcat 7.0:
<init-param>
<param-name>checkInterval</param-name>
<param-value>30</param-value>
</init-param>
Esse trecho tem como função configurar:
a) A frequência das verificações por modificações nas páginas JSP para 30 segundos.
b) A quantidade de trechos de memória a serem verificados pelo gerenciador para 30 trechos.
c) O intervalo entre as checagens por novos clientes para 30 milissegundos.
d) O intervalo entre as manutenções de segurança do servidor para 30 minutos.
e) O número de análises a serem feitas pelo Garbage Collector, a cada intervalo de tempo, para 30 análises.
Questão 6
(MPE-ES/2013) Na plataforma Java EE (J2EE), em comparação com os Servlets, a criação de Java Server Pages (JSP) facilita o desenvolvimento de páginas web, pois:
a) Sua execução é mais rápida devido ao código não precisar ser compilado antes de ser executado.
b) Permite que o código Java seja depurado diretamente pelo navegador.
c) Permite que o conteúdo estático seja escrito sem a necessidade de utilizar código Java.
d) Evita que a página produza erros em tempo de execução.
e) O código Java pode ser executado diretamente pelo navegador por meio do JavaScript, sem a necessidade de um servidor web.
Questão 7
(Banco da Amazônia/2014) No desenvolvimento de uma aplicação Web em Java, várias tecnologias podem ser utilizadas, como páginas HTML puras, páginas JSP, servlets.
Observe as afirmações a seguir concernentes a essas tecnologias.
I – Páginas JSP não geram código HTML, precisam invocar um servlet para isso.
II – Páginas JSP são compiladas, quando modificadas, e transformadas em servlets que geram código HTML.
III – Servlets geram páginas JSP que executam e geram código HTML.
IV – Servlets não podem gerar código HTML diretamente, devendo ser chamados por páginas JSP.
Está correto APENAS o que se afirma em:
a) II
b) III
c) I e IV
d) II e III
e) I, III e IV
Questão 8
(TCE-RS/2014) Em uma aplicação web criada com a versão mais recente do Java EE o conteúdo dos campos id, nome e salario de um formulário são submetidos ao arquivo JSP abaixo:
Considere a existência de uma classe chamada Funcionario.java no pacote bean, que possui os atributos id, nome e salario. Para instanciar um objeto desta classe, a lacuna I pode ser preenchida com a tag:
a) <jsp:setInstance id=”func” class=”bean.Funcionario” scope=”all”/>;
b) <jsp:setProperty name=”func” class=”bean.Funcionario” scope=”yes”/>;
c) <jsp:useBean name=”func” class=”bean.Funcionario” scope=”application”/>;
d) <jsp:setBean id=”func” class=”bean.Funcionario” scope=”application”/>;
e) <jsp:useBean id=”func” class=”bean.Funcionario” scope=”request”/>;
Questão 9
(AL-MA/2013) Considere os códigos a seguir, referentes a uma página HTML, um servlet Java e uma página JSP. index.html:
Servlet nada.do, referenciado pela página html listada anteriormente:
Página JSP final.jsp referenciada pelo servlet listado anteriormente:
Assinale a alternativa que apresenta o resultado exibido pela página final.jsp depois que o usuário clicar no botão submit da página index.html.
a) valor-1 valor-1
b) valor-1 valor-2
c) valor-2 null
d) valor-2 valor-1
e) valor-2 valor-2
Questão 10
(Seduc-SP/2014) O JSP é uma tecnologia que permite que o código Java seja embarcado nas páginas web por meio de scriptlets. No entanto, para que esse código possa ser executado:
a) A página JSP é convertida em Servlet e compilada.
b) Ele é convertido em JavaScript, que é suportado pela maioria dos navegadores web.
c) O servidor utiliza um interpretador Java especial que dispensa o processo de compilação.
d) Os scriptlets são removidos da página JSP e compilados separadamente.
e) Todo código associado à página é convertido em um único scriptlet que é devidamente interpretado pelo navegador web antes de exibir o conteúdo da página.
RESPOSTAS
Questão 1 – E
Justificativa: Analisando as opções:
- Servlet não aciona outro Servlet. Este é capaz de receber uma requisição, apenas processá-la -> Errada. É possível, por exemplo, configurar no web.xml o nome do servlet e sua url, e chamar a url do servlet.
- Um Servlet pode apenas processar requisições do tipo “get”, isto é, aquelas originadas de um formulário web -> Errada. Pode processar vários tipos de requisições, entre elas, post.
- Os Servlets são executados sempre no computador do usuário, nunca no servidor Web ->Errada. O servlet é sempre executado no servidor.
- Apesar dos Servlets serem baseados na tecnologia Java, não há a necessidade de uma Máquina Virtual Java para executá-lo -> Errada. Sem a Máquina virtual e um Container Janva não é possível executar um Servlet.
- Para que um Servlet possa ser executado é necessário que um Container Java esteja em funcionamento. -> Correta. Entre estes podemos destacar TomCat, Glassfish e JBoss.
Questão 2 – E
Justificativa: As opções acima referem-se ao ciclo de vida de um servlet:
- O ciclo de vida de um servlet é controlado pelo container.
- Quando o servidor recebe uma requisição, ela é repassada para o container que a delega a um servlet. O container
o Carrega a classe na memória
o Cria uma instância da classe do servlet
o Inicializa a instância chamando o método init()
- Depois que o servlet foi inicializado, cada requisição é executada em um método service()
- O container cria um objeto de requisição (ServletRequest) e de resposta (ServletResponse) e depois chama service() passando os objetos como parâmetros
- public void service(ServletRequest, ServletResponse)
- Quando a resposta é enviada, os objetos são destruídos
- Quando o container decidir remover o servlet da memória, ele o finaliza chamando destroy()
Questão 3 – C
Justificativa: Analisando as opções:
- É um método da JPA utilizado na persistência assíncrona de dados -> Errada. Servlet não é um método da JPA, mas sim uma classe Java usada para estender as funcionalidades de um servidor.
- É um componente que roda do lado do cliente para tratar problemas de comunicação -> Errada. Servlet roda no lado servidor.
- É uma classe Java utilizada para estender as capacidades de um servidor -> Correta. Esta foi a proposta da SUN.
- É uma biblioteca JBOSS que emula servidores no lado do cliente -> Errada. JBOSS é um container que roda no lado servidor. Por isto não emula servidores no lado do cliente.
- É uma JSP que possibilita a execução de código no lado do cliente, mesmo sem comunicação com um servidor -> Errada. JSP, quando compilado é transformado em um Servlet e precisa rodar em um Container.
Questão 4 – A
Justificativa: Analisando as opções:
- Servlets são implementadas como arquivos de classe da Linguagem Java. -> Correto. Servlet é uma classe Java usada para estender as funcionalidades de um servidor.
- Servlets são independentes de plataforma, de modo que podem ser executadas em diferentes servidores, em diferentes sistemas operacionais -> Correto. Por se tratar de uma classe Java, roda sobre a JVM, sendo assim independente do Sistema Operacional.
- As Servlets podem acessar qualquer uma das APIs Java. Uma Servlet pode usar a API JDBC para acessar e armazenar dados ou para acessar objetos remotos. ->Errada. JDBC não foi desenvolvido para acessar objetos remotos. Para isto empregamos a interface de programação RMI (Remote Method Invocation).
- Ao criar uma Servlet, somos obrigados a reescrever nove métodos presentes à interface que foi implementada -> Errada -> Normalmente, precisamos reescrever pelo menos um.
Questão 5 – A
Justificativa: O valor 30 definido como parâmetro corresponde a unidade de tempo segundos. Seu objetivo é definir o intervalo de Refresh do JSP.
Questão 6 – C
Justificativa: Analisando as opções:
- sua execução é mais rápida devido ao código não precisar ser compilado antes de ser executado -> Errado. O Container traduz para um arquivo-fonte da classe Servlet e o compila.
- permite que o código Java seja depurado diretamente pelo navegador. Errada. Por rodar no servidor, assim como o Servlet, o browser não acessa o código-fonte java.
- permite que o conteúdo estático seja escrito sem a necessidade de utilizar código Java. -> Correto. O código HTML, por exemplo, pode ser escrito sem código java.
- evita que a página produza erros em tempo de execução. -> Errada. Para isto podemos implementar o tratamento de exceção.
- o código Java pode ser executado diretamente pelo navegador por meio do JavaScript, sem a necessidade de um servidor web. -> Errada. JSP, quando compilado é transformado em um Servlet e precisa rodar em um Container.
Questão 7 – A
Justificativa: Analisando as opções:
- Páginas JSP não geram código HTML, precisam invocar um servlet para isso. -> Errada. JSP não invoca um servlet. Ele é um Servlet após compilado.
- Páginas JSP são compiladas, quando modificadas, e transformadas em servlets que geram código HTML. -> Correto. JSP, quando compilado é transformado em um Servlet e precisa rodar em um Container.
- Servlets geram páginas JSP que executam e geram código HTML. -> Errado. Os Servlets chamam páginas JSP. É importante lembrar que JSP, quando compilado é transformado em um Servlet.
- Servlets não podem gerar código HTML diretamente, devendo ser chamados por páginas JSP. -> Errado. Pode gerar código HTML sim, como por exemplo: out.println (“h1 Exemplo / h1”);
Questão 8 – E
Justificativa: Analisando as opções:
- <jsp:setInstance id=”func” class=”bean.Funcionario” scope=”all” /> -> Errada. O correto é useBean ao invés de setInstance. All não corresponde ao scope válido.
- <jsp:setProperty name=”func” class=”bean.Funcionario” scope=”yes” /> ->Errada. O correto é useBean ao invés de setProperty. Yes não corresponde ao scope válido. Deveria ser id ao invés de name.
- <jsp:useBean name=”func” class=”bean.Funcionario” scope=”application” /> -> Errada. Deveria ser id ao invés de name.
- <jsp:setBean id=”func” class=”bean.Funcionario” scope=”application” />; -> Errada. O correto é useBean ao invés de setIBean.
- <jsp:useBean id=”func” class=”bean.Funcionario” scope=”request” />; ->Correto. Inclusive o scope poderia ser outros, como , por exemplo, application.
Questão 9 – D
Justificativa: A página index.html existe um campo oculto chamado valor que possui como conteúdo o texto valor-1. No servlet é configurado um atributo chamado valor que possui como conteúdo o texto valor-2. Isto pode gerar muita confusão por possuirem o mesmo nome. Porém observe que, na página JSP chamada final.jsp, é exibido primeiramente o valor que consta no atribulo valor(configurado no servlet) obtido pelo método getAttribute(). Logo após, é exibido o parâmetro valor(campo oculto), obtido pelo método getParameter(). Por isto a saída são respectivamente valor-2 e valor-1.
Questão 10 – A
Justificativa: Analisando as opções:
- a página JSP é convertida em Servlet e compilada. -> Correto. O Container traduz para um arquivo-fonte da classe Servlet e o compila.
- ele é convertido em JavaScript, que é suportado pela maioria dos navegadores web. –> Errada. Não é convertida para Javascript, mas sim Servlet que é Java, rodando no Servidor.
- o servidor utiliza um interpretador Java especial que dispensa o processo de compilação. –> Errada. Não utiliza um interpretador Java especial. É necessário a compilação.
- os scriptlets são removidos da página JSP e compilados separadamente. –> Errada. Toda a página é compilada e convertida para um Servlet.
- todo código associado à página é convertido em um único scriptlet que é devidamente interpretado pelo navegador web antes de exibir o conteúdo da página. –> Errada. Não é interpretado pelo browser. É convertido e compilado rodando no Servidor.
Material retirado da Web.
Se você tiver alguma dúvida ou correção a fazer, por favor, comente! Obrigado!