Pegando o caminho completo do container web

4 respostas
zirocool

Galera, o seguinte, quero fazer uns upload pruma aplicação num server.

O problema é que eu não consigo “pegar” o caminho até a aplicação.

Por exemplo,

String path = new File("").getAbsolutePath() + "\\webapps\\" + getServletContext().getServletContextName();
						
System.out.println("Path: " + path + "\\upload\\" + criptName + ".jpg" );

File uploadFile = new File( path + "\\upload\\" + criptName + ".jpg" );

Colocando webapps, o sistema salva onde eu quero.

Mas isso nao seria compatível, se eu usasse outro container, não sei qual é a pasta onde vao as aplicações, e isso não seria mto legal.

Se alguém puder me ajudar a descobrir, como pegar a pasta de aplicação do container, ficaria mto grato.

4 Respostas

reizin
HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(false);
String path = session.getServletContext().getRealPath("/");
ziegfried

reizin:
HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(false); String path = session.getServletContext().getRealPath("/");

de onde tu tirou que o cara tá usando JSF?

faz simples assim:

request.getRealPath("/")

boa sorte!

zirocool

Valewww!! :smiley:

Jair_Rillo_Junior

Lembrando que HttpServletRequest.getRealPath() está deprecated.
Uma solução seria usar o seguinte, dentro do servlet

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	    ServletContext context = getServletContext();
		String path = context.getRealPath("/");
	}
Criado 16 de maio de 2007
Ultima resposta 17 de mai. de 2007
Respostas 4
Participantes 4