SóProvas


ID
1826914
Banca
FGV
Órgão
TJ-PI
Ano
2015
Provas
Disciplina
Programação
Assuntos

Qual a forma mais simples para se compactar as respostas de uma aplicação Java para Web já construída? A classe que melhor responde a essa pergunta é:

Alternativas
Comentários
  • O que complica essa questão é o enunciado e as alternativas vagas, mas vamos lá...

     

    A questão quer saber o seguinte: Tendo uma aplicação Java Web já construída, como eu adiciono alguma forma de compressão HTTP nas respostas  do servidor mexendo o mínimo possível na aplicação?

     

    Opções:

     

    a) Filter - De fato, um filtro é a forma mais fácil de implementar esse requisito. Uma única classe filtro mapeada para todas as requisições seria responsável por alterar o objeto HttpServletResponse para que a resposta enviada ao usuário fosse comprimida. Isto envolveria alterar cabeçalhos e fazer qualquer tipo de processamento genérico em todas as respostas de requisições que seriam interceptadas pelo filtro.

     

    b) Servet - É possível conseguir o que o enunciado da questão pede usando Servlets. Entretanto, cada Servlet da aplicação teria que ser alterado para fazer a compressão da resposta antes de enviá-la. Se a aplicação tiver muitos servlets, será um trabalho enorme. Como o enunciado pede " A classe que melhor responde a essa pergunta", então esta NÃO é a resposta.

     

    c)ServletContext - Classe utilizada para a "comunicação" entre um Servlet e o contêiner Web que fornece os serviços da plataforma. Essa classe individualmente não atende ao que é pedido pelo enunciado.

     

    d) HttpSession - Classe usada para manter o estado de uma conversação longa entre um cliente e o servidor Web. Ela basicamente serve para armazenar atributos compartilhados entre várias requisições do cliente para o servidor. Ela não resolve o problema

     

    e)HttpServletRequest - Representa uma requisição HTTP feita pelo cliente para o servidor. Ela individualmente também não resolve.

     

    Portanto, a melhor alternativa é a letra A.

     

     

     

  • javax.servlet.Filter é uma interface com 3 métodos:

    init(FilterConfig filterConfig)

    doFilter(ServletRequest request, ServletResponse response, FilterChain chain)

    destroy()

     

    Descrição do Javadoc da interface:

    A filter is an object that performs filtering tasks on either the request to a resource (a servlet or static content), or on the response from a resource, or both.

    Filters perform filtering in the doFilter method. Every Filter has access to a FilterConfig object from which it can obtain its initialization parameters, and a reference to the ServletContext which it can use, for example, to load resources needed for filtering tasks.

    Filters are configured in the deployment descriptor of a web application.

     

    Como a aplicação já está construída, uma forma de implementar a compactação das respostas da aplicação, sem alterar a aplicação já escrita, seria escrever uma classe que implementa a interface javax.servlet.Filter e configurar essa classe no arquivo descritor de implantação da sua aplicação web (web.xml).

     

    Javadoc:

    https://docs.oracle.com/javaee/7/api/javax/servlet/Filter.html

     

    Gabarito: a)