Pular para o conteúdo principal

Questão de Programação — Servlet — VUNESP 2024

ProgramaçãoServlet
Código
vu083847
Banca
VUNESP
Órgão
Prefeitura de Mogi das Cruzes - SP
Ano
2024
Nível
Superior
Cargo
Analista de Sistemas
O seguinte código-fonte de um servlet Java usa os métodos getServletConfig e getInitParameter para obter um parâmetro de configuração.import java.io.*;import javax.servlet.*;import javax.servlet.http.*;public class MeuServlet extends HttpServlet {public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException {response.setContentType(“text/html”);PrintWriter out = response.getWriter();ServletConfig config = getServletConfig();String dbdriver =config.getInitParameter(“dbdriver”);out.print(“Driver configurado: “+dbdriver);out.close();}}Para que seja obtido corretamente, o parâmetro de configuração dbdriver deve estar definido
  1. Ano arquivo web.xml do web container.
  2. Bno arquivo config.ini do web container.
  3. Cno arquivo /etc/java/servletconfig.xml do sistema operacional Linux que hospeda o web container.
  4. Dem uma tabela chamada config de um banco de dados relacional utilizado pelo web container.
  5. Eem um arquivo chamado dbdriver dentro do diretório /etc/java/servletconfig do sistema operacional Linux que hospeda o web container.
Revelar gabarito e comentário

GabaritoA — no arquivo web.xml do web container.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Servlet – Parâmetros de Inicialização

Gabarito: Letra A. Parâmetros de configuração obtidos via getInitParameter em um Servlet são definidos no arquivo web.xml (descritor de deploy) da aplicação web, dentro da tag <init-param>. Esse é o local padrão estabelecido pela API Java Servlet para configurar parâmetros de inicialização de servlets.

A questão testa o conhecimento sobre onde residem as configurações de inicialização de um servlet. O método getServletConfig().getInitParameter("dbdriver") recupera um valor previamente declarado no descritor de implantação da aplicação, que é o arquivo web.xml (ou, alternativamente, via anotações @WebInitParam em servlets 3.0+). As demais alternativas apontam para locais que não são reconhecidos pelo container servlet.

Característica

web.xml (Descritor de Deploy)

Alternativas Incorretas

Local padrão para getInitParameter

✅ Sim, via tag <init-param>

❌ Não

Reconhecido pelo container Servlet

✅ Sim

❌ Não

Específico da aplicação

✅ Sim

❌ Não (config.ini, /etc/..., banco de dados)

Base normativa

API Java Servlet (Java EE)

Nenhuma

Alternativa A — ✅ Correta ⟵ GABARITO

O arquivo web.xml é o local padrão para declarar parâmetros de inicialização de servlets. Nele, utiliza-se a estrutura:

<servlet>
    <init-param>
        <param-name>dbdriver</param-name>
        <param-value>com.mysql.jdbc.Driver</param-value>
    </init-param>
</servlet>

O container lê esse arquivo no momento da implantação da aplicação e disponibiliza os valores através do ServletConfig.

Alternativa B — ❌ Incorreta

Não existe um arquivo config.ini padrão no container web para configuração de servlets. Os parâmetros de inicialização são específicos de cada aplicação e devem estar no descritor de deploy da própria aplicação.

Alternativa C — ❌ Incorreta

O caminho /etc/java/servletconfig.xml não faz parte da especificação Java EE. O container web não procura configurações de servlet nesse local; ele utiliza o arquivo web.xml dentro da estrutura da aplicação (diretório WEB-INF).

Alternativa D — ❌ Incorreta

Embora um servlet possa consultar um banco de dados, os parâmetros de configuração como dbdriver não são obtidos de uma tabela do banco. O getInitParameter lê do ServletConfig, que é populado a partir do web.xml (ou de anotações).

Alternativa E — ❌ Incorreta

Um arquivo avulso chamado dbdriver no diretório /etc/java/servletconfig não é reconhecido pela API Servlet. O mecanismo padrão é o descritor de deploy, não arquivos de sistema operacional.

PEGA ESSA DICA!

Ao ver getInitParameter em servlets, lembre-se imediatamente do web.xml. Em versões mais recentes (Servlet 3.0+), é possível usar a anotação @WebInitParam diretamente na classe, mas a questão clássica sempre cobra o web.xml. Fique atento: nunca confunda com arquivos de configuração do container (como server.xml do Tomcat) — esses são para configurações globais, não para parâmetros de servlet específicos.

Gabarito: Letra A

Link permanente: /questoes/vu083847