(1), Request.getRealPath ("/"); // Es wird nicht empfohlen, den Stammpfad des Projekts zu verwenden, um das Projekt zu erhalten
(2), Request.getRealPath (request.getRequesturi ()); // Erhalten Sie den Pfad zu JSP. Diese Methode ist einfacher zu verwenden und kann direkt in Servlets und JSP verwendet werden
(3), Request.GetSession (). GetServletContext (). GetRealPath ("/"); // Erhalten Sie den Root -Pfad des Projekts. Diese Methode ist einfacher zu verwenden und kann direkt in Servlet und JSP verwendet werden
(4), this.getClass (). GetClassloader (). GetResource (""). GetPath (); // den Pfad unter den Projektklassen erhalten. Diese Methode kann in JEd JSP-, Servlet- und Java -Dateien verwendet werden, da unabhängig davon, ob es sich um JSP, Servlet handelt, tatsächlich Java -Programme und alle Klassen sind. Es sollte also ein allgemeiner Ansatz sein.
0. Über absolute und relative Wege
1. Verständnis der grundlegenden Konzepte Absolute Pfad: Der absolute Pfad ist der reale Weg der Datei oder des Verzeichnisses auf Ihrer Homepage auf der Festplatte (URL und physischer Pfad). Zum Beispiel: C: xyz est.txt repräsentiert den absoluten Pfad der Datei test.txt. http://www.sun.com/index.htm repräsentiert auch einen absoluten URL -Pfad. Relativer Weg: Der Pfad relativ zu einem bestimmten Benchmark -Verzeichnis. Enthält den relativen Pfad des Web (relatives Verzeichnis in HTML) zum Beispiel: In einem Servlet "/" repräsentiert das Verzeichnis der Webanwendung. und die relative Darstellung des physischen Pfades. Zum Beispiel: "./" repräsentiert das aktuelle Verzeichnis "../" das vorherige Verzeichnis. Diese ähnliche Darstellung gehört auch zum relativen Weg. Darüber hinaus finden Sie für URI, URL, URN usw. die RFC -verwandten Dokumentationsstandards. RFC 2396: Einheitliche Ressourcenidentifikatoren (URI): generische Syntax, (http://www.ietf.org/rfc/rfc2396.txt) 2. In Bezug auf relative und absolute Wege in JSP/Servlets. 2.1 serverseitige Adresse Die relative Adresse der Serverseite bezieht sich auf die Adresse Ihrer Webanwendung. Diese Adresse ist auf der Serverseite analysiert (im Gegensatz zu den relativen Adressen in HTML und JavaScript werden sie vom Clientbrowser analysiert)
1. Anfrage.GetRealPath
Methode: Request.getRealPath ("/")
Der erhaltene Pfad: C:/Programmdateien/Apache Software Foundation/Tomcat 5.5/WebApps/Strutstest/
Methode: Request.getRealPath (".")
Der erhaltene Pfad: C:/Programmdateien/Apache Software Foundation/Tomcat 5.5/WebApps/Strutstest/.
Methode: Request.getRealPath ("")
Der erhaltene Pfad: C:/Programmdateien/Apache Software Foundation/Tomcat 5.5/WebApps/Strutstest
Request.getRealPath ("web.xml")
C:/Programmdateien/Apache Software Foundation/Tomcat 5.5/WebApps/Strutstest/web.xml
2. Request.GetParameter ("");
ActionForm.getMyFile ();
Methode: String filepath = request.getParameter ("myFile");
Der erhaltene Pfad: D:/VSS Installation Directory/Benutzer.txt
Methode: String filepath = actionForm.getMyFile ();
Der erhaltene Pfad: D:/VSS Installation Directory/Benutzer.txt
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Strudstest ist der Projektname
myfile in actionForm, private String myfile;
Auf der Seite JSP: <HTML: Datei Property = "myFile"> </html: Datei>
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
3. Erhalten Sie den Systempfad
In Anwendung:
System.getProperty ("user.dir")
Im Servlet:
ServletContext ServletContext = config.getServletContext ();
String rootPath = ServletContext.getRealPath ("/");
In JSP:
application.getRealPath ("")
4. Andere 1
1. Es kann in der Init -Methode von Servlet sein
String path = getServletContext (). GetRealPath ("/");
Dadurch wird der vollständige Weg zum Webprojekt einbezogen
Zum Beispiel: e:/eclipsem9/Arbeitsbereich/Baum/
Baum ist das Root -Verzeichnis meines Webprojekts
2. Sie können es auch jederzeit in jeder Klasse anrufen
this.getClass (). getClassloader (). getResource (""). getPath (); // Nach dem Test ist diese Methode sicher und effektivste
this.getClass (). getResource ("/conf"). getPath (); // Nach dem Testen ist diese Methode auch sicher
Dies führt den vollständigen Weg zum Klassenverzeichnis
Zum Beispiel:/d:/Workspace/Strudstest/webroot/web-inf/classes/
Es gibt auch diese.
Dadurch wird/d:/Workspace/strutstest/webroot/web-inf/classes/bl/erhalten
Diese Methode kann auch verwendet werden, ohne den Pfad in der Webumgebung zu bestimmen.
3.Request.getContextPath ();
Holen Sie sich die Kontextumgebung der Webroste
Wie /Baum
Baum ist der roterwichtige Kontext meines Webprojekts
5. Andere 2
Verschiedene Möglichkeiten, Wege in Java zu erhalten - - - -
1. Wie bestimmt JDK den Pfad im Programm? Im Allgemeinen werden bei der Programmierung Dateipfade in relative Pfade und absolute Pfade unterteilt. Absolute Pfade sind leichter zu handhaben, aber sie sind nicht flexibel. Wenn wir Dateien in der Programmierung betreiben, lesen wir daher normalerweise die relativen Pfade der Datei.
Der relative Weg ist möglicherweise etwas komplizierter, ist aber auch relativ einfach. Der relative Pfad, hauptsächlich relativ auf wen, kann der Pfad des Klassenladers oder der Pfad unter der aktuellen Java -Datei sein. In der JSP -Programmierung kann es sich um den Weg der Website handeln. Im Vergleich zum Pfad der Website können wir GetServletContext () verwenden. GetRealPath ("/") und Request.getRealPath ("/"): Dies ist der absolute Weg, um die Website zu erhalten. und GetContextPath (): den virtuellen Pfad der Website erhalten;
2. class.getClassloader.getPath (): den Pfad zum Klassenload: Was ist ein Klassenlader? Im Allgemeinen werden Klassenlader vom System und den Benutzern selbst definiert. Der Klassenloader des Systems wird von JDK bereitgestellt, und sein Pfad ist der Pfad unter JDK oder in JSP -Programmierung, wie z.
Nach dem Verständnis ist der Betrieb von Dateipfaden ziemlich klar. Wenn wir programmieren, müssen wir nur herausfinden, welchen Weg die Datei, die wir betreiben, relativ und den relativen Weg erhalten.
6. Zusammenfassung
1. Holen Sie sich den Dateipfad unter dem Webserver
Request.getRealPath ("/")
application.getRealPath ("") 【jsp】
ServletContext (). GetRealPath ("")
System.getProperty ("user.dir") [An verschiedenen Stellen genannt, wird der erhaltene Pfad dynamisch verändert]
2. Holen Sie sich den lokalen Weg
In JSP, <HTML: Datei Property = "MyFile"/>
request.getParameter ("myfile");
ActionForm.getMyFile ();
Der erhaltene Wert ist der gleiche
******************************************
this.getClass (). getClassloader (). getResource (""). getPath ();
==/d:/Workspace/strutstest/webroot/web-inf/classes/
this.getClass (). getResource (""). getPath (). toString ();
==/d:/Workspace/strutstest/webroot/webinf/classes/bl/
3. Holen Sie sich den relativen Weg
Request.getContextPath ();
Zusätzlich:
GetResource oder GetResourceAsStream ist in Java -Dateien verfügbar
Beispiel: getClass (). GetResourceasStream (Filepath); // Filepath kann "/Dateiname" sein, hier/repräsentiert den Standardpfad von Web-inf/Klassen unter dem Web Publishing Root Path: Web-inf/Klassen. Es wurde in Tomcat getestet.
Die obigen verschiedenen Methoden (Zusammenfassung) des Erhalts von Java, die Pfade erhalten, sind der gesamte Inhalt, den ich mit Ihnen teile. Ich hoffe, Sie können Ihnen eine Referenz geben und ich hoffe, Sie können wulin.com mehr unterstützen.