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
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 maisJSP - 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