PDA

View Full Version : [JAVA]Conoscere URL di un file caricato in servlet


Algeroth
17-02-2008, 22:24
Ciao a tutti,
sto diventando matto con un problema che forse è più semplice di quanto penso, ma non riesco ad illuminarmi.
Praticamente mi interesserebbe conoscere la URL di un file caricato tramite servlet, nel senso che non appena nel codice della servlet gestisco l'upload del file, come faccio a sapere con quale URL posso raggiungere e visualizare quel file?
Spero di essere stato chiaro, e nel frattempo grazie mille a tutti anticipatamente:muro: :muro: :muro:

Algeroth
18-02-2008, 13:22
Diciamo che potrei tranquillamente risolvere con il comando all'interno della servlet "getServletContext().getRealPath("/")", ma non so il motivo per cui a me ritorna sempre NULL, mentre a tutto il resto del mondo torna il percorso della ROOT della servlet.

AIUTOOOOOOOOOOOOOO:muro: :muro: :muro:

ally
18-02-2008, 15:33
...il comando esatto per il real path è getServlet().getServletContext().getRealPath("/")...sei sicuro di chiamarlo in maniera corretta?...

...ciao...

Algeroth
18-02-2008, 16:11
...il comando esatto per il real path è getServlet().getServletContext().getRealPath("/")...sei sicuro di chiamarlo in maniera corretta?...

...ciao...

getServlet() mi sembra che non esiste come metodo all'interno di una servlet, forse intendi getServletConfig(), ma cmq le ho provate tutte (svariate forme ma il problema è sempre lo stesso.
Il fatto è che cercando un pò qua e la su internet, mi sembra di aver capito che è un problema di container, nel senso che il mio problema è che la servlet gira all'interno di un jar e mi sembra di aver capito che in tale caso il famoso metodo getRealPath() non funziona.....

Cmq sto diventando matto, quindi se mai a qualcuno viene in mente anche solo una piccola idea di come ottenere il percorso di root di una servlet che gira in un file JAR, sarebbe il benvenuto :D :) :D

Ciao ciao e grazie ancora :muro: :muro: :muro:

ally
18-02-2008, 16:22
getServlet() mi sembra che non esiste come metodo all'interno di una servlet, forse intendi getServletConfig(), ma cmq le ho provate tutte (svariate forme ma il problema è sempre lo stesso.
Il fatto è che cercando un pò qua e la su internet, mi sembra di aver capito che è un problema di container, nel senso che il mio problema è che la servlet gira all'interno di un jar e mi sembra di aver capito che in tale caso il famoso metodo getRealPath() non funziona.....

Cmq sto diventando matto, quindi se mai a qualcuno viene in mente anche solo una piccola idea di come ottenere il percorso di root di una servlet che gira in un file JAR, sarebbe il benvenuto :D :) :D

Ciao ciao e grazie ancora :muro: :muro: :muro:

...si scusa...getServlet() è prerogativa delle Action di Struts....e appoggiarsi alla request?...

System.out.println("real "+request.getRealPath("/"));
System.out.println("context "+request.getContextPath());

...ciao...

Algeroth
18-02-2008, 16:36
...si scusa...getServlet() è prerogativa delle Action di Struts....e appoggiarsi alla request?...

System.out.println("real "+request.getRealPath("/"));
System.out.println("context "+request.getContextPath());

...ciao...

Proprio niente...
sembra una servlet maledetta :cry: :cry:

Non so più dove sbattere la testa :muro:

ally
18-02-2008, 16:48
Proprio niente...
sembra una servlet maledetta :cry: :cry:

Non so più dove sbattere la testa :muro:

...potresti postare il codice incriminato?...

...ciao...

Algeroth
18-02-2008, 17:04
...potresti postare il codice incriminato?...

...ciao...

Eccolo qui....
questo avviene in un ciclo, ma conta poco per te...:D


owlfile = item.getName().toString();
owlContentFile = item.getString().toString();
File storageFile = new File(getServletContext().getRealPath("/"), owlfile);
System.out.println("PATH FILE: " + getServletContext().getRealPath("/") + "\tSERVLET PATH: \t" + request.getServletPath());
item.write(storageFile);

ally
18-02-2008, 17:19
...mh...questa parte dice poco...dovresti avere un HttpServletRequest request che ti viene passato dai metodi doGet e doPost...e dalla request in questione puoi ricavare tutte le informazioni del caso...

...sia con i metodi precedenti sia appoggiandoti appunto alla servletContext() es. request.getSession().getServletContext().getRealPath("/"); ...

...ciao...

ally
18-02-2008, 17:20
...qualche esempio (http://www.java2s.com/Code/Java/Servlets/CatalogServlets.htm) e spunto utile...

...ciao...