(1), request.getRealPath ("/"); // il n'est pas recommandé d'utiliser le chemin racine du projet pour obtenir le projet
(2), request.getRealPath (request.getRequesturi ()); // Obtenez le chemin d'accès à jsp. Cette méthode est plus facile à utiliser et peut être utilisée directement dans les servlets et JSP
(3), request.getSession (). GetServletContext (). GetRealPath ("/"); // Obtenez le chemin racine du projet. Cette méthode est plus facile à utiliser et peut être utilisée directement dans Servlet et JSP
(4), this.getClass (). GetClassLoader (). GetResource (""). GetPath (); // Obtenez le chemin dans les classes de projet. Cette méthode peut être utilisée dans tous les fichiers JSP, Servlet et Java, car peu importe que ce soit JSP, servlet, sont en fait des programmes Java et sont tous des classes. Il devrait donc être une approche générale.
0. À propos des chemins absolus et relatifs
1. Comprendre le chemin absolu des concepts de base: le chemin absolu est le vrai chemin du fichier ou du répertoire sur votre page d'accueil sur le disque dur (URL et chemin physique). Par exemple: C: xyz est.txt représente le chemin absolu du fichier test.txt. http://www.sun.com/index.htm représente également un chemin d'URL absolu. Chemin relatif: le chemin par rapport à un certain répertoire de référence. Contient le chemin relatif du Web (répertoire relatif dans HTML), par exemple: dans un servlet, "/" représente le répertoire de l'application Web. et la représentation relative du chemin physique. Par exemple: "./" représente le répertoire actuel, ../ "représente le répertoire précédent. Cette représentation similaire appartient également au chemin relatif. De plus, pour URI, URL, URN, etc., veuillez vous référer aux normes de documentation liées à la RFC. RFC 2396: Identificateurs de ressources uniformes (URI): Syntaxe générique, (http://www.ietf.org/rfc/rfc2396.txt) 2. Concernant les chemins relatifs et absolus dans JSP / servlets. 2.1 Adresse côté serveur L'adresse relative du côté serveur fait référence à l'adresse de votre application Web. Cette adresse est analysée du côté du serveur (contrairement aux adresses relatives dans HTML et JavaScript, ils sont analysés par le navigateur client)
1. Request.getRealpath
Méthode: request.getRealPath ("/")
Le chemin obtenu: C: / Program Files / Apache Software Foundation / Tomcat 5.5 / WebApps / Strutstest /
Méthode: request.getRealPath (".")
Le chemin obtenu: C: / Program Files / Apache Software Foundation / Tomcat 5.5 / WebApps / Strutstest /.
Méthode: request.getRealPath ("")
Le chemin obtenu: C: / Program Files / Apache Software Foundation / Tomcat 5.5 / Webapps / Strutstest
request.getRealPath ("web.xml")
C: / / Program Files / Apache Software Foundation / Tomcat 5.5 / Webapps / Strutstest / web.xml
2. Request.getParameter ("");
ActionForm.GetMyFile ();
Méthode: String filepath = request.getParameter ("myFile");
Le chemin obtenu: D: / VSS Installation Directory / Users.txt
Méthode: String filepath = actionform.getMyfile ();
Le chemin obtenu: D: / VSS Installation Directory / Users.txt
--------------------------------------------------
Strutstest est le nom du projet
MyFile dans ActionForm, Private String MyFile;
Dans la page JSP: <html: file propriété = "myFile"> </ html: fichier>
--------------------------------------------------
3. Obtenez le chemin du système
Dans l'application:
System.getProperty ("user.dir")
En servlet:
ServletContext servletContext = config.getServletContext ();
String rootPath = servletContext.getRealPath ("/");
Dans JSP:
application.getRealPath ("")
4. Autre 1
1. Il peut être dans la méthode init du servlet
String path = getServletContext (). GetRealPath ("/");
Cela obtiendra la voie complète vers le projet Web
Par exemple: e: / eclipsem9 / espace de travail / arbre /
Tree est le répertoire racine de mon projet Web
2. Vous pouvez également l'appeler dans n'importe quelle classe à tout moment
this.getClass (). getClassLoader (). getResource (""). getPath (); // Après les tests, cette méthode est sûre et la plus efficace
this.getClass (). getResource ("/ conf"). getPath (); // Après les tests, cette méthode est également sûre
Cela obtiendra le chemin complet vers le répertoire des classes
Par exemple: / d: / workspace / strutstest / webroot / web-inf / classes /
Il y a aussi ce.getClass (). GetResource (""). GetPath (). ToString ();
Cela obtiendra / d: / workspace / strutstest / webroot / web-inf / classes / bl /
Cette méthode peut également être utilisée sans déterminer le chemin du chemin dans l'environnement Web.
3.request.getContextPath ();
Obtenez l'environnement de contexte de la racine du web
Comme / arbre
L'arbre est le contexte racine de mon projet Web
5. Autre 2
Plusieurs façons d'obtenir des chemins en java - -
1. Comment JDK détermine-t-il le chemin du programme? Généralement, dans la programmation, les chemins de fichier sont divisés en chemins relatifs et chemins absolus. Les chemins absolus sont plus faciles à manipuler, mais ils ne sont pas flexibles. Par conséquent, lorsque nous exploitons des fichiers dans la programmation, nous lisons généralement les chemins relatifs du fichier.
Le chemin relatif peut être un peu plus compliqué, mais il est également relativement simple. Le chemin relatif, principalement par rapport à qui, peut être le chemin du chargeur de classe, ou le chemin du chemin sous le fichier Java actuel. Dans la programmation JSP, c'est peut-être le chemin du site. Par rapport au chemin du site, nous pouvons utiliser getServletContext (). GetRealPath ("/") et request.getRealPath ("/"): c'est le chemin absolu pour obtenir le site; et getContextPath (): Obtenez le chemin virtuel du site;
2. Class.getClassloader.getPath (): Obtenez le chemin d'accès au chargeur de classe: Qu'est-ce qu'un chargeur de classe? Généralement, les chargeurs de classe sont définis par le système et les utilisateurs eux-mêmes; Le chargeur de classe du système est fourni par JDK, et son chemin est le chemin sous JDK, ou dans la programmation JSP, comme Tomcat, l'emplacement du chargeur de classe obtenu est le chemin du chargeur conçu par Tomaca.
Après les comprendre, le fonctionnement des chemins de fichier sera assez clair. Lorsque nous programmons, nous devons simplement déterminer le chemin du fichier que nous opérons est relatif et obtenir le chemin relatif.
6. Résumé
1. Obtenez le chemin du fichier sous le serveur Web
request.getRealPath ("/")
application.getRealPath ("") 【jsp】
ServletContext (). GetRealPath ("")
System.getProperty ("user.dir") [appelé à différents emplacements, le chemin obtenu est modifié dynamiquement]
2. Obtenez le chemin local
Dans jsp, <html: file propriété = "myfile" />
request.getParameter ("myFile");
ActionForm.GetMyFile ();
La valeur obtenue est la même: comme D: / VSS Installation Directory / Users.txt
***************************************
this.getClass (). getClassLoader (). getResource (""). getPath ();
== / d: / workspace / strutstest / webroot / web-inf / classes /
this.getClass (). getResource (""). getPath (). toString ();
== / d: / workspace / strutstest / webroot / web-inf / classes / bl /
3. Obtenez le chemin relatif
request.getContextPath ();
en outre:
GetResource ou getResourceSstream est disponible dans les fichiers Java
Exemple: getClass (). GetResourCeasStream (filepath); // filepath peut être "/ nom de fichier", ici / représente le chemin par défaut de Web-Inf / classes sous le chemin racine de publication Web: Web-Inf / classes. Il a été testé à Tomcat.
Les différentes méthodes ci-dessus (résumé) des chemins d'obtention de Java sont tout le contenu que je partage avec vous. J'espère que vous pourrez vous faire référence et j'espère que vous pourrez soutenir Wulin.com plus.