Root-Pfad in einer Webapplikation finden

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo ...

ich möchte auf dem Webserver in das Filesystem Dateien ablegen. Wie kann ich denn (relativ) den Root-Pfad meiner Webapplikation bestimmen?

Erzeugt werden die Dateien, die ich ablegen möchte, in einer normalen Java-Klasse (kein Servlet o.ä.).

Kann mir da jmd. helfen? Ist bestimmt ganz einfach, aber ich raff' es gerade nicht. DANKE!!!
 

The_S

Top Contributor
Versuchs mal mit getCodeBase()! Du weißt aber schon, dass du nicht ohne weiteres auf einen Server schreiben kannst!?
 
G

Guest

Gast
getCodeBase() ist ja wohl wenn ich das richtige sehe von nem Applet. Das ist nicht gerade das nachdem ich gesucht habe. Ich habe ja kein Applet, sondern eine ganz normale Java-Klasse.

Die Problematik mit dem Schreiben auf einen Websever ist mir geläufig, aber in diesem Fall kein Problem...
 

The_S

Top Contributor
Was willst du jetzt eigentlich genau? Deine Klasse liegt auf einem Server und du möchtest wissen wo genau sie sich auf dem Server befindet (Verzeichnis)!?
 
G

Guest

Gast
Ja die Klasse liegt auf dem Server! Ich möchte gerne das ROOT-Verzeichnis der Webapplikation herausbekommen. Also z.b. unter ../tomcat/webapps/MyWebProject/.. den Pfad zu MyWebProject.

Mir wäre auch schon geholfen, wenn ich das Verzeichnis der Klasse bekomme, wobei die halt noch tiefer in der Package-Struktur liegt.

Wenn ich z.b. mit File f = new File("."); suche, bekomme ich immer das bin-Verzeichnis vom tomcat. Also nicht ganz das was ich haben will.
 

Kawa-Mike

Mitglied
Du benutzt Tomcat. Falls du die Examples mitinstalliert hast, sieh Dir doch mal /jsp-examples/snoop.jsp an.
Dort findest du u.a. den Servlet path.
Hier das Beispiel von Tomcat 5.5
Code:
<html>
<!--
  Copyright 2004 The Apache Software Foundation

  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

      [url]http://www.apache.org/licenses/LICENSE-2.0[/url]

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->

<body bgcolor="white">
<h1> Request Information </h1>
<font size="4">
JSP Request Method: <% out.print(util.HTMLFilter.filter(request.getMethod())); %>


Request URI: <%= request.getRequestURI() %>


Request Protocol: <%= request.getProtocol() %>


Servlet path: <%= request.getServletPath() %>


Path info: <% out.print(util.HTMLFilter.filter(request.getPathInfo())); %>


Query string: <% out.print(util.HTMLFilter.filter(request.getQueryString())); %>


Content length: <%= request.getContentLength() %>


Content type: <% out.print(util.HTMLFilter.filter(request.getContentType())); %>


Server name: <%= request.getServerName() %>


Server port: <%= request.getServerPort() %>


Remote user: <%= request.getRemoteUser() %>


Remote address: <%= request.getRemoteAddr() %>


Remote host: <%= request.getRemoteHost() %>


Authorization scheme: <%= request.getAuthType() %> 


Locale: <%= request.getLocale() %>
<hr>
The browser you are using is <% out.print(util.HTMLFilter.filter(request.getHeader("User-Agent"))); %>
<hr>
</font>
</body>
</html>

Wenn du den absoluten Pfad haben möchtest brauchst du den IntialContext. Der hat ein Attribut docBase. So sollte es gehen. Ich will sehen ob ich ein Beispiel finde.
 
G

Guest

Gast
InitialContext hört sich ja gut an. Aber wie bekomme ich den denn?

Ich habe mir das Bsp. vom Tomcat auch mal angeschaut. Da bekomme ich aber auch nur relative Angaben zum Servelt etc.! Ich brauche aber wie gesagt einen absoluten Pfad zum Webroot.

Kannste mir nochmal helfen, wie ich an den InitalContext komme und dann an den DocBase?
 

Kawa-Mike

Mitglied
ich glaube du bekommst den Initialcontext nur im Servelt, bin mir aber nicht sicher. Es sieht dann ungefähr so aus:

Code:
    public void init() throws ServletException {

        ServletConfig config = getServletConfig();
        ---    	    	
        // is defined in web.xml as <context-param>
    	ServletContext context = getServletContext();
    	String webmasterMailadress = context.getInitParameter("webmaster");
       ---- 
        Enumeration e = context.getInitParameterNames();
        System.out.println("---------- getInitParameter Start ---------- ----------");
        while(e.hasMoreElements()){
        	String elName = (String)e.nextElement();
        	System.out.println("next Parametername:" + elName);
        	String value = context.getInitParameter(elName);
        	if(null != value){
        		System.out.println("value: " + value);
        	}
        }
        System.out.println("---------- getInitParameter Ende ---------- ----------");
        
        e = context.getAttributeNames();
        PHLog.debug("---------- getAttributeNames Start ---------- ----------");
        while(e.hasMoreElements()){
        	String attName = (String)e.nextElement();
        	PHLog.debug("next AttributeName:" + attName);
        	Object value = context.getAttribute(attName);
        	if(null != value){
        		PHLog.debug("value: " + value.toString());
        	}
        }
        System.out.println("---------- getAttributeNames Ende ---------- ----------");
        
        try {
                // der realPath ist der Pfad auf dem Server. Als Parameter kannst du den relativen
                // Path uebergeben, dann wird Dir der gesamte Pfad zurueckgegeben.
                String realPath = context.getRealPath("");
	if(null != realPath)PHLog.debug("realPathPhoenix: " + realPath);
    } catch (RuntimeException e1) {
	System.out.println("Error could not read RealPath: " + e1.getMessage());
	e1.printStackTrace();
    }
	System.out.println("---------- --------------------- Ende ---------- ----------");
    }

Mit der Methode getRealPath solltest du den vollstaendigen Pfad bekommen. Die beiden Enumerations durchsuchen die Parameter und die Namen die im Context hinterlegt sind und geben die Werte aus. Dort stehen solche Dinge wie TEMPDIR und CLASSPATH.

Gruss
Mike
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Java Discord bot auf ein Root Server? Allgemeine Java-Themen 1
Rakshan Generic reading of XML document from the root tag into an Collection Allgemeine Java-Themen 0
S log4j, root logger logt nur FATAL? Allgemeine Java-Themen 9
H Certificate mit Root Certificate verifizieren 2 Allgemeine Java-Themen 2
H root-Passwort übergeben Allgemeine Java-Themen 28
S Ist File ein root-Verzeichnis? Allgemeine Java-Themen 2
O Ein Verzeichnis aus der Root ablesen/Dateitypen registrieren Allgemeine Java-Themen 5
E root JTree Allgemeine Java-Themen 2
kodela String kann nicht zu Pfad konvertiert werden Allgemeine Java-Themen 16
izoards Java Home Pfad unabhängig von der Version Allgemeine Java-Themen 7
L Java überprüfen lassen, ob sich ein gegebener Pfad / das Programm an sich auf einer CD oder Festplatte befindet Allgemeine Java-Themen 14
G Datei aus Ordner wählen, ohne den Dateinamen im Pfad angeben zu müssen Allgemeine Java-Themen 4
N relativier Pfad für sqlite-Datenbank in Gradle/IntelliJ Allgemeine Java-Themen 2
O Leerzeichen und Umlaute im Pfad einer Java Applikation machen Probleme Allgemeine Java-Themen 13
S Pfad zu Ressourcen Allgemeine Java-Themen 17
T Probleme mit dem Pfad zum Propertie file Allgemeine Java-Themen 7
C FileOutputStream konkreter Pfad Allgemeine Java-Themen 3
J Datei löschen, die Leerzeichen im Pfad hat Allgemeine Java-Themen 5
L Classpath Relativer Pfad einer Resource? Allgemeine Java-Themen 9
sandaime CMD aufrufen und aktuellen pfad ändern Allgemeine Java-Themen 11
J .exe Dateien werden nicht gestartet obwohl Pfad richtig Allgemeine Java-Themen 6
C pfad vom Image ausgeben lassen Allgemeine Java-Themen 5
O log4j pfad per umgebungsvariable setzen Allgemeine Java-Themen 5
K Classpath Falscher Pfad? o.O Allgemeine Java-Themen 2
S Shell Commands mit absolutem Pfad ausführen Allgemeine Java-Themen 2
F LWJGL in keinem Java libary Pfad? Allgemeine Java-Themen 2
M FileInputStream relativer Pfad in .jar Allgemeine Java-Themen 2
D pfad zur jre linux Allgemeine Java-Themen 8
C Kompletter Pfad aus "input type=file" auslesen Allgemeine Java-Themen 3
M Input/Output Pfad mit Leerzeichen convertieren in Kurzschreibweise (~1, ~2, etc)? Allgemeine Java-Themen 10
C JAR, Pfad und Properties Allgemeine Java-Themen 17
P Pfad zu Dateien von "Tragbaren Gerät" Allgemeine Java-Themen 3
F Pfad der laufenden JAR ermitteln (mit Archivnamen) Allgemeine Java-Themen 2
U DLLs werden nicht gefunden trotz Pfad: Allgemeine Java-Themen 4
G log4j File erzeugen und Pfad bestimmen Allgemeine Java-Themen 3
A File Java Pfad Allgemeine Java-Themen 5
D JavaEE-WebApp Pfad auslesen Allgemeine Java-Themen 3
M Pfad in int[][] finden Allgemeine Java-Themen 4
J Java Pfad nicht mehr in Path Variablen??? Allgemeine Java-Themen 2
C Environment Variable in Pfad -> Datei öffnen Allgemeine Java-Themen 5
M Relativer Pfad oder Dateien in Jar Allgemeine Java-Themen 7
D Pfad aus Ressource-Datei auslesen Allgemeine Java-Themen 7
S FileInputStream aplication Pfad Allgemeine Java-Themen 4
H Datei speichern -> Pfad erstellen? Allgemeine Java-Themen 1
T Pfad Anwendungsdaten unter Windows ermitteln Allgemeine Java-Themen 3
H2SO3- jar soll eigenen namen(pfad) finden Allgemeine Java-Themen 12
W HTML-Pfad Allgemeine Java-Themen 4
M Batch ausführen mit Leerzeichen im Pfad Allgemeine Java-Themen 7
C Applet: JFileChooser: PFad an HTML zürückgeben Allgemeine Java-Themen 4
MQue ClassLoader Pfad ausgeben Allgemeine Java-Themen 6
T Pfad aus Dateilesen -> wie diesen Pfad verwenden! Allgemeine Java-Themen 13
A Jar-File - Pfad Allgemeine Java-Themen 3
-horn- Kürzester Pfad: Code so eine gute Idee? Allgemeine Java-Themen 7
H absoluter Pfad ins working Directory Allgemeine Java-Themen 17
GambaJo Pfad zum Userprofil abhängig vom OS (/home Dok&Einst. us Allgemeine Java-Themen 3
R Wo ist der Pfad zur "Java(TM) Platform SE" Allgemeine Java-Themen 7
R Pfad zu PDF bei iText in Webapps Allgemeine Java-Themen 4
P Pfad der gerade ausgeführten Jar-Datei auslesen Allgemeine Java-Themen 2
R Entfernen der '..' Notation aus dem Pfad Allgemeine Java-Themen 2
T Java Applet PDF erstellen mit iText, Probleme mit Pfad Allgemeine Java-Themen 1
MasterEvil File.createTempFile liefert nur kurzen Pfad mit Tilde Allgemeine Java-Themen 3
T Wie bekomme ich den Pfad ohne Dateiname? Allgemeine Java-Themen 2
MQue Pfad splitten Allgemeine Java-Themen 2
P Pfad schließen xml Allgemeine Java-Themen 3
M Absoluter Pfad. Allgemeine Java-Themen 6
H Pfad einer Sounddatei von Soundkarte auslesen Allgemeine Java-Themen 15
G Problem Pfad zu wechseln Allgemeine Java-Themen 28
J Erkennen aus welchem Pfad das Jar gestartet wurde Allgemeine Java-Themen 6
S relativer Pfad? Allgemeine Java-Themen 18
S Relativen Pfad zu Pfad für File finden Allgemeine Java-Themen 4
G Problem mit Leerzeichen im Pfad bei File und getResouce Allgemeine Java-Themen 2
S Relativer Pfad in jsp Allgemeine Java-Themen 6
D Pfad ausfindig machen? Allgemeine Java-Themen 2
E Pfad angeben Allgemeine Java-Themen 5
M Den Pfad ermitteln aus dem die .jar Datei gestartet wurde Allgemeine Java-Themen 2
G ganze Pfad in einer Ordnerstruktur abbilden Allgemeine Java-Themen 19
G FileOpenDialog Pfad anlegen? Allgemeine Java-Themen 2
E in Pfad suchen Allgemeine Java-Themen 5
Q || Wie speichert man Dateien wo der Pfad als Link(UNIX)... Allgemeine Java-Themen 11
S Pfad Verwaltung Allgemeine Java-Themen 3
M Pfad zur Klasse ermitteln Allgemeine Java-Themen 2
L Pfad von Daten auf Server über FileChooseDialog Allgemeine Java-Themen 5
G absoluter pfad aus relativem Allgemeine Java-Themen 5
D Windows Pfad in UNC Pfad wandeln Allgemeine Java-Themen 4
G jar archiv und native klassen (pfad angabe) Allgemeine Java-Themen 2
P Leerzeichen im Pfad Allgemeine Java-Themen 8
I Pfad in einem String ändern Allgemeine Java-Themen 5
D Pfad zu meiner anwendung? Allgemeine Java-Themen 13
B relativer Pfad Allgemeine Java-Themen 18
J Pfad problem Allgemeine Java-Themen 14
D Jar-Datei-Pfad Allgemeine Java-Themen 2
welterde Pfad zur Jar-Datei Allgemeine Java-Themen 7
S Runtime exec unter MacOS X will nicht "open pfad" Allgemeine Java-Themen 7
M TreePath aus einem Pfad? Allgemeine Java-Themen 4
K Falscher Pfad beim Laden eines Bildes Allgemeine Java-Themen 9
G Servlets: Ganzer Pfad und Dateiname des verschickten Forms Allgemeine Java-Themen 15
G Wie komme ich an den Pfad zu meinem Programm? Allgemeine Java-Themen 2
thE_29 DOS pfad bekommen - die Tilde Allgemeine Java-Themen 1
A Pfad mit Leerzeichen über exec starten Allgemeine Java-Themen 6
G Relativer Pfad zu Pfad Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben