Lista de Exerc´ıcios - Servlets

Transcrição

Lista de Exerc´ıcios - Servlets
Lista de Exercı́cios - Servlets
Prof. André Luis Schwerz
7 de abril de 2010
Questões 1 a 10 foram retiradas do livro [1]
1. Como o código do servlet de um método service (por exemplo, doPost()) obteria
valor do header "User-Agent" da solicitação? (Escolha todas as que se aplicam.)
a)
b)
c)
d)
String
String
String
String
userAgent
userAgent
userAgent
userAgent
=
=
=
=
request.getParameter("User-Agent");
request.getHeader("User-Agent");
request.getRequestHeader("User-Agent");
getServletContext().getInitParameter("User-Agent");
2. Quais são os métodos HTTP usados para mostrar ao cliente o que o servidor esta
recebendo? (Escolha todas as que se aplicam).
a)
b)
c)
d)
e)
GET
PUT
TRACE
RETURN
OPTIONS
3. Qual método do HttpServletResponse é usado para redirecionar uma solicitação
HTTP para outra URL?
a)
b)
c)
d)
e)
sendURL()
redirectURL()
redirectHttp()
sendRedirect()
getRequestDispatcher()
4. Quais os métodos HTTP que não são considerados idempotentes? (Escolha todas
as que se aplicam.)
a) GET
b) POST
1
c) HEAD
d) PUT
5. Sendo req um HttpServletRequest, qual das alternativas recebe um stream de
entrada de dados binários? (Escolha todas as que se aplicam)
a)
b)
c)
d)
BinaryInputStream s = req.getInputStream();
ServletInputStream s = req.getInputStream();
BinaryInputStream s = req.getBinaryStream();
ServletInputStream s = req.getBinaryStream();
6. Como você configuraria um header chamado "CONTENT-LENGTH" no objeto HttpServletResponse?
a)
b)
c)
d)
response.setHeader(CONTENT-LENGTH, "1024");
response.setHeader("CONTENT-LENGTH", "1024");
response.setStatus(1024);
response.setHeader("CONTENT-LENGTH", 1024);
7. Escolha o trecho do código do servlet que recebe um stream binário para escrever
uma imagem, ou outro tipo binário, no HttpServletResponse().
a)
b)
c)
d)
java.io.PrintWriter out = response.getWriter();
ServetOutputStream out = response.getOutputStream();
java.io.PrintWriter out = new PrintWriter(response.getWriter());
ServletOutputStream out = response.getBinaryStream();
8. Quais os métodos são usados por um servlet para tratar os dados de um formulário
vindos de um cliente? (Escolha todas as que se aplicam.)
a)
b)
c)
d)
e)
f)
HttpServlet.doHead();
HttpServlet.doPost();
HttpServlet.doForm();
ServletRequest.doGet();
ServletRequest.doPost();
ServletRequest.doForm();
9. Quais dos seguintes métodos são declarados no HttpServletRequest ao contrário
do ServletRequest? (Escolha todas as que se aplicam.)
a)
b)
c)
d)
e)
getMethod();
getHeader();
getCookies();
getInputStream();
getParameterNames();
2
10. Como os desenvolvedores de servlet devem tratar o método service() do HttpServlet quando estenderem o HttpServlet? (Escolha todas as que se aplicam.)
a)
b)
c)
d)
Eles
Eles
Eles
Eles
devem
devem
devem
devem
anular o método service() na maioria dos casos.
chamar o método service() do doGet() ou doPost().
chamar o método service() do método init().
anular pelo menos um método doXXX(). (como um doPost()).
11. Qual o método HTTP realiza uma requisição com o propósito de obter informações
sobre os métodos suportados pelo servidor HTTP?
a)
b)
c)
d)
e)
GET
INFO
HEAD
TRACE
OPTIONS
12. Dado um cabeçalho em uma requisição HTTP:
X-Retries:4
Quais os modos de recuperar o valor de um cabeçalho em uma dada requisição
ServletRequest? (Escolha duas.)
a)
b)
c)
d)
e)
request.getHeader("X-Retries")
request.getIntHeader("X-Retries")
request.getRequestHeader("X-Retries")
request.getHeaders("X-Retries").get(0)
request.getRequestHeaders("X-Retries").get(0)
13. Quais dos dois métodos HTTP são usados para processar dados em um servlet?
(Escolha dois.)
a)
b)
c)
d)
e)
f)
doGet()
doPut()
doPost()
doTrace()
doSubmit()
doProcess()
14. Qual o método podem ser usado para recuperar todos os nomes dos parâmetros
enviados como parte de uma requisição do cliente?
a) O método HttpServletRequest.getParameterNames() retorna uma enumeração com os nomes dos parâmetros.
b) O método HttpServletResponse.getParameterNames() retorna uma enumeração com os nomes dos parâmetros.
3
c) O método HttpServletRequest.getAllParameters() retorna uma enumeração
com os nomes dos parâmetros.
d) Não há suporte na Servlet API para recuperar os nomes de todos os parâmetros
enviados pelo cliente.
15. Seja o deployment descriptor de uma Aplicação Web representado por:
<web-app version="2.4">
<servlet>
<servlet-name> InitParamsServlet </servlet-name>
<servlet-class> scwcd14.chap02.InitParamsServlet</servlet-class>
<init-param>
<param-name>name</param-name>
<param-value>javabeat</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name> InitParamsServlet </servlet-name>
<url-pattern> /InitParamsServlet </url-pattern>
</servlet-mapping>
</web-app>
Qual será a saı́da do seguinte Servlet?
package scwcd14.chap02;
import java.io.*;
import java.net.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class InitParamsServlet extends HttpServlet {
public void init(){
ServletConfig config = getServletConfig();
System.out.println(config.getInitParameter("name"));
System.out.println(config.getInitParameter("no-name"));
}
...
}
a) O Servlet exibirá no console javabeat null.
b) O Servlet falhará ao carregar o paramêtro incial no-name não mencionado no
deployment descriptor.
c) Um NullPointerException será disparado na chamada do getServletConfig()
no método init().
4
16. Seja um deployment descriptor de uma Aplicação Web.
<web-app version="2.4">
<context-param>
<param-name>app-name</param-name>
<param-value>MockQuestions</param-value>
</context-param>
<servlet>
<servlet-name>ContextInfoServlet</servlet-name>
<servlet-class>chap03.ContextInfoServlet</servlet-class>
<init-param>
<param-name>app-name</param-name>
<param-value>ContextInfoServlet</param-value>
</init-param>
</servlet>
</web-app>
Qual alternativa possui o código que apresentará a mensagem MockQuestions
ContextInfoServlet no navegador (assumindo que out é uma instância válida
da classe PrintWriter)?
a) out.println(config.getServletContext().getParameter("app-name"));
out.println(config.getInitParameter("app-name"));
b) out.println(config.getInitParameter("app-name"));
out.println(config.getServletContext().getInitParameter("app-name"));
c) out.println(config.getServletContext().getInitParameter("app-name"));
out.println(config.getInitParameter("app-name"));
d) out.println(config.getServletContext().getInitParameter("app-name"));
out.println(config.getParameter("app-name"));
Referências
[1] Bryan Basham, Kathy Sierra, and Bert Bates. Use a Cabeça! Servlet e JSP. Alta
Books, 2 edition, 2007.
5

Documentos relacionados

Servlet, JSP e Java Bean

Servlet, JSP e Java Bean Servlets são classes Java executadas em servidores web. Servem para processar regras de negócio em uma camada ligada ao servidor, fora da máquina do cliente. Podem, por exemplo, executar as regras ...

Leia mais

JSP - Giuliano Prado

JSP - Giuliano Prado Para simplificar o código JSP existem um conjunto de objetos implícitos que podem ser usados pelo programador. Os mais importantes são:

Leia mais