Como utilizar arquivos Java de forma correta em uma aplicação Web?

8 respostas
rafadelnero

Boa noite!

Estou com uma dúvida referente a utilização de arquivos com aplicações Web, quero utilizar arquivos de dentro do meu projeto, só que para recuperá-los, o caminho vai mudar de computador pra computador.

E gostaria de saber como que eu faço isso em um projeto Web, já vi alguns métodos como getCanonicalPath, entre outros, e também percebi que esses caminhos referenciam direto o arquivo temporário no Tomcat, porém preciso que tenha algum método que pegue o caminho de dentro de meu projeto, é possível fazer isso?

Qual seria a melhor prática para essa situação?

Valeu!

8 Respostas

Roselito_Favero_da_S

Use como no exemplo:

String caminho = FacesContext.getCurrentInstance().getExternalContext().getRealPath("") + "/resources/relatorios/";
rafadelnero

Roselito Fávero da Silva:
Use como no exemplo:

String caminho = FacesContext.getCurrentInstance().getExternalContext().getRealPath("") + "/resources/relatorios/";

Esse caminho funciona em qualquer sistema operacional? Ele pega direto de dentro do meu projeto?

Roselito_Favero_da_S

Eu uso sempre assim, com Linux, com Rwindows, em todos os projetos que necessitam disso.

P

olá amigo estou com o mesmo problema… acho que é…

quero deixar um arquivo dentro da minha aplicação e colocar um botão de download do mesmo para o usuário baixar como modelo de arquivo… mas não sei como

Roselito_Favero_da_S

Se você puser, por exemplo, um arquivo teste.pdf dentro da pasta resources, use um botão, ou um menu que aponte para

FacesContext.getCurrentInstance().getExternalContext().getRealPath("") + "/resources/teste.pdf"

Você pode também criar um atributo String chamado arquivo, por exemplo, no controlador e referenciar no botão do xhtml como “#{controlador.arquivo}”. Aí é so retornar o caminho acima no getArquivo().

P

Entendi…
Obrigado Roselito…

Mas isso funcionaria colocando em um jsp? sem passar por um servlet??

Por exemplo:

Pq não estou conseguindo… queria uma forma mais prática do que usar o FacesContext (Precisa de jar?)

Roselito_Favero_da_S

Dê uma pesquisada em JSF para ver como usar o FacesContext.

Use um controlador (Managed bean). Você cria um método com o que eu passei e chama o método no action do seu botão.

Veja um exemplo de como acessar métodos de um managed bean aqui: http://rfavero.blogspot.com.br/2013/10/atualizando-datatables-de-diferentes_3.html

P

Olá Roselito…
Coloquei o arquivo no webcontent e chamei o mesmo no jsp direto… ficou mais simples… para o que eu preciso…Obrigado mesmo assim.

Criado 28 de setembro de 2013
Ultima resposta 3 de out. de 2013
Respostas 8
Participantes 3