Pegue uma referência do ServletContext (getServletContext() da classe HttpServlet) e depois use o método getResource(String). Assim você terá acesso a qualquer recurso dentro da sua aplicação. Ex:
Quero o teste.txt que está dentro do diretório WEB-INF/docs
sendo que arquivo.txt tem que estar na raiz da sua aplicação, ao lado da pasta WEB-INF. Consulte também na documentação o método getResourceAsStream() da classe ServletContext.
Quando dentro de um Servlet, Ok, consigo mesmo acessar pelos métodos fornecidos por ele, mas como faço por exemplo para obter o caminho real para um arquivo xml que está em /WEB-INF/classes em uma classe não-servlet. Estou criando um DAO baseado em xml mas não encontra o arquivo para realizar o parser:
public XmlHistoriaDAO() throws IOException, JDOMException {
SAXBuilder builder = new SAXBuilder();
Document document = builder.build("/WEB-INF/classes/Historia.xml");
root = document.getRootElement();
}
Eu estava com o mesmo problema do Carlos Geiser e consegui resolver colocando o método abaixo na minha classe servlet:[code]
import java.io.FileInputStream;
import java.util.Properties;
para criar um arquivo.properties no eclipse clique com o botão direito em qualquer pasta dentro do projeto escolha new >>> file >>> coloque o nome do arquivo sempre com a extensão .properties.
Depois de criado coloque os valores que quiser dentro do arquivo da seguinte forma:
teste1=8554555
teste2=123456
para ler estes valores basta chamar o método lerProperties() postado na mensagem anterior da seguinte forma: