"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como acessar recursos no diretório WAR/WEB-INF com ServletContext?

Como acessar recursos no diretório WAR/WEB-INF com ServletContext?

Publicado em 2024-12-21
Navegar:665

How to Access Resources in the WAR/WEB-INF Directory with ServletContext?

Acessando recursos no diretório WAR/WEB-INF com ServletContext

Introdução:

Os aplicativos da web Java geralmente armazenam recursos essenciais no diretório WAR/WEB-INF. Para acessar esses recursos, os desenvolvedores podem aproveitar a API ServletContext.

Pergunta:

Como você pode criar o caminho correto para um recurso localizado no WAR/WEB-INF pasta, como "/war/WEB-INF/test/foo.txt"?

Resposta:

Existem dois métodos principais para construir o caminho para recursos no WAR/ Diretório WEB-INF usando ServletContext:

1. Método getRealPath():

Se o arquivo WAR foi expandido em um conjunto de arquivos, você pode usar o método getRealPath():

ServletContext context = getContext();
String fullPath = context.getRealPath("/WEB-INF/test/foo.txt");

Isso retornará o caminho completo do sistema para o recurso.

2. Métodos getResource() ou getResourceAsStream():

Esses métodos podem ser usados ​​independentemente de o arquivo WAR ser expandido ou não:

ServletContext context = getContext();
URL resourceUrl = context.getResource("/WEB-INF/test/foo.txt"); // for URL
InputStream resourceContent = context.getResourceAsStream("/WEB-INF/test/foo.txt"); // for input stream

Notas adicionais:

  • O método getContext() mencionado no código de exemplo é específico do aplicativo. Nas páginas JSP, ele está disponível como "contexto", enquanto nos servlets é obtido do ServletConfig durante a inicialização.
  • O método getRealPath() pode não funcionar se o Servlet Container não extrair o arquivo WAR.
  • Os métodos getResource() e getResourceAsStream() são confiáveis ​​e funcionam em todos os cenários de implantação.
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3