Maison Java javaDidacticiel Explication détaillée des chemins relatifs et des chemins absolus en Java (Web)

Explication détaillée des chemins relatifs et des chemins absolus en Java (Web)

Jun 29, 2017 pm 02:43 PM
路径 问题

Avant-propos :
Il y a quelque temps, en raison de la gestion de la création et du déplacement de fichiers sous les applications Web, cela impliquait de nombreux problèmes concernant les chemins relatifs, les chemins absolus et d'autres problèmes en Java
. Parallèlement, j'ai découvert les chemins relatifs, les chemins absolus et les classes Java.io.File
dans les applications Web. J'ai également trouvé quelques informations. J'espère que si vous rencontrez des problèmes similaires, vous pourrez les résoudre plus efficacement.

============================================ == =====================================
Compréhension des concepts de base

Chemin absolu : Le chemin absolu est le chemin réel du fichier ou du répertoire sur votre page d'accueil sur le disque dur, (URL et chemin physique Par exemple :
C:/xyz/test.txt représente le). chemin absolu du chemin du fichier test.txt. www.sun.com/index.htm représente également un chemin absolu d'URL
.

Chemin relatif : un chemin relatif à un répertoire de base. Contient le chemin relatif du Web (répertoire relatif en HTML). Par exemple : dans
Servlet, "/" représente le répertoire de l'application Web. et une représentation relative du chemin physique. Par exemple : "./" représente le répertoire actuel,
"../" représente le répertoire de niveau supérieur. Cette représentation similaire appartient également au chemin relatif.

De plus, pour l'URI, l'URL, l'URN, etc., veuillez vous référer aux normes de documents liées aux RFC.

RFC 2396 : Identificateurs de ressources uniformes (URI) : syntaxe générique,
(www.ietf.org/rfc/rfc2396.txt)


2. Chemins relatifs et chemins absolus dans .

2.1 Adresse côté serveur

L'adresse relative côté serveur fait référence à l'adresse relative à votre application web. Cette adresse est résolue côté serveur
(différente du html et du JavaScript. Adresses relatives, elles sont analysées par le navigateur client) En d'autres termes, les adresses relatives de
dans jsp et servlet à ce moment doivent être relatives à votre application Web, c'est-à-dire relatives à http://192.168.0.1/ application Web/.

Les endroits où elle est utilisée sont :
forward : request.getRequestDispatcher(address) dans la servlet ; cette adresse est analysée par
côté serveur, donc si vous souhaitez transférer vers un .jsp, il devrait écrire ceci :
request.getRequestDispatcher("/user/a.jsp") Ceci/par rapport à l'application Web actuelle webapp,
son adresse absolue est : 192.168.0.1/webapp/user/ a.jsp.
sendRedirect : in jsp<%response.sendRedirect("/rtccp/user/a.jsp");%>

2.22. Adresse du client

Tout html Les adresses relatives dans les pages sont relatives au répertoire racine du serveur (http://192.168.0.1/),
plutôt que (avec le répertoire de l'application web sous le répertoire) http://192.168.0.1/webapp/ de.
L'adresse de l'attribut action du formulaire en HTML doit être relative au répertoire racine du serveur 192.168.0.1/),
Donc, si soumis à a.jsp : action="/webapp/user/a. jsp" ou action="<%=request.getContextPath()%>"/user/a.jsp;
Soumis au servlet en tant qu'actiom="/webapp/handleservlet"
JavaScript est également analysé sur du côté client, donc son chemin relatif est le même que celui du formulaire.

Par conséquent, dans des circonstances normales, il est préférable d'ajouter
<%=request.getContextPath()%> devant CSS, Javascript.Action et autres attributs référencés dans JSP/HTML pages. ;, pour garantir que les fichiers référencés appartiennent au répertoire de l’application Web.
De plus, vous devriez essayer d'éviter d'utiliser des chemins relatifs comme ".", "./", "../../" et d'autres chemins relatifs similaires par rapport à l'emplacement du fichier de cette façon
. il est facile de causer des problèmes lorsque le fichier est déplacé.


3. Obtenir le chemin relatif et le chemin absolu de l'application actuelle dans JSP/Servlet
3.1 Obtenir le chemin relatif et le chemin absolu de l'application actuelle dans JSP
Le chemin absolu correspondant vers le répertoire racine : request.getRequestURI()
Le chemin absolu du fichier :application.getRealPath(request.getRequestURI());
Le chemin absolu de l'application web actuelle : application.getRealPath("/" );
Récupérer le fichier demandé Répertoire supérieur : new File(application.getRealPath(request.getRequestURI())).getParent()

3.2 Obtenir le chemin relatif et le chemin absolu de l'application actuelle dans Servlet
Le chemin absolu correspondant au répertoire racine : request.getServletPath();
Le chemin absolu du fichier :request.getSession().getServletContext().getRealPath
(request.getRequestURI())
Le chemin absolu de l'application Web actuelle : servletConfig.getServletContext() .getRealPath("/");

  (ServletContext对象获得几种方式:
       javax.servlet.http.HttpSession.getServletContext() 
       javax.servlet.jsp.PageContext.getServletContext() 
       javax.servlet.ServletConfig.getServletContext() 
     )
Copier après la connexion

Méthode de 4.java pour obtenir le chemin relatif et le chemin absolu dans Class
4.1 Obtention du chemin absolu dans une classe Java distincte
D'après le fichier Doc de java.io.File, on peut voir :
Par défaut, le répertoire représenté par new File("/") est : System.getProperty("user.dir").
Le programme suivant obtient le chemin actuel de la classe d'exécution

package org.cheng.file;import java.io.File;
public class FileTest {    public static void main(String[] args) throws Exception {      
  System.out.println(Thread.currentThread().getContextClassLoader().getResource(""));    
  System.out.println(FileTest.class.getClassLoader().getResource(""));       
  System.out.println(ClassLoader.getSystemResource(""));          System.out.println(FileTest.class.getResource(""));          System.out.println(FileTest.class.getResource("/")); //Class文件所在路径    System.out.println(new File("/").getAbsolutePath());          System.out.println(System.getProperty("user.dir"));     }}
Copier après la connexion

4.2 La classe Java du serveur obtient le chemin actuel (depuis le réseau)
(1).Weblogic

Le répertoire racine des fichiers système de WebApplication est le répertoire racine de votre installation weblogic.
Par exemple : si votre weblogic est installé sur c:/bea/weblogic700....
Ensuite, le chemin racine de votre fichier est c:/.
Il existe donc deux façons d'accéder à votre fichier côté serveur :
a. Utilisez le chemin absolu :
Par exemple, placez votre fichier de paramètres dans c:/yourconfig/yourconf.properties,
utilisez directement new FileInputStream("yourconfig/yourconf.properties" ) ;
b. Utilisez des chemins relatifs :
Le répertoire racine du chemin relatif est le chemin racine de votre application Web, qui est le répertoire de niveau supérieur de WEB-INF. Placez votre fichier de paramètres dans

yourwebapp/yourconfig/yourconf.properties,

Utilisez comme ceci :
new FileInputStream("./yourconfig/yourconf.properties");
Les deux méthodes sont disponibles, vous pouvez choisir.

(2).Tomcat

affiche System.getProperty("user.dir") dans la classe ; ce qui est affiché est %Tomcat_Home%/bin

(3) . Resin

n'est pas le chemin relatif où est placé votre JSP. C'est le chemin où le moteur JSP exécute et compile ce JSP dans SERVLET

comme racine. test File f = new File("a.htm" );
Ce a.htm se trouve dans le répertoire d'installation de résine

(4).

Dans les fichiers Java, getResource ou getResourceAsStream peuvent être utilisés

Exemple : getClass().getResourceAsStream(filePath);//filePath peut être "/filename", où / représente web

WEB-INF/classes sous le chemin racine de publication

Le chemin par défaut pour utiliser cette méthode est : WEB-INF/classes. Déjà testé dans Tomcat.

5. Chemin relatif lors de la lecture de fichiers, évitez l'utilisation de codage en dur et de chemins absolus. (Depuis Internet)

5.1 Utilisez le mécanisme DI de Spring pour obtenir des fichiers afin d'éviter le codage en dur.
Référez-vous au contenu de connexion suivant :
www.javajia.net/viewtopic.php?p=90213&
5.2 Lecture des fichiers de configuration
Référez-vous au contenu de connexion suivant :
dev.csdn .net/develop/article/39/39681.shtm
5.3 Lire un fichier XML via un chemin virtuel ou un chemin relatif pour éviter le codage en dur
Reportez-vous au contenu de connexion suivant :
club.gamvan.com/ club/ clubPage.jsp?iPage=1&tID=10708&ccID=8

6. Opérations courantes de fichiers en Java (copier, déplacer, supprimer, créer, etc.) (à partir d'Internet)
Java couramment utilisé Classes d'opérations sur les fichiers
www.easydone.cn/014/200604022353065155.htm

Opérations sur les fichiers Java (en JSP)
www.pconline.com.cn/pcedu/empolder/gj/java/0502 /559401.html

Explication détaillée des opérations sur les fichiers Java (site Web Java chinois)

www.51cto.com/html/2005/1108/10947.htm

Comment créer/supprimer /modifier/copier des répertoires et des fichiers en JAVA

www.gamvan.com/developer/java/2005/2/264.html

Résumé :

Grâce à l'utilisation du contenu ci-dessus, vous pouvez résolvez le problème du déplacement de fichiers et de la recherche de fichiers côté serveur d'applications Web, copiez
, supprimez des fichiers et autres opérations, et en même temps, le concept d'adresse relative et d'adresse absolue du serveur est plus clair.
Il est recommandé de se référer au document standard RFC de l'URI. En même temps, vous avez une compréhension approfondie de Java.io.File Java.NET.URI.
La compréhension d'autres aspects peut être plus approfondie et approfondie.


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment corriger l'erreur : classe principale introuvable ou chargée en Java Comment corriger l'erreur : classe principale introuvable ou chargée en Java Oct 26, 2023 pm 11:17 PM

Cette vidéo ne peut pas être lue en raison d'une erreur technique. (Code d'erreur : 102006) Ce guide fournit des solutions simples à ce problème courant et continue votre parcours de codage. Nous discuterons également des causes des erreurs Java et de la manière de les éviter à l'avenir. Qu'est-ce que « Erreur : classe principale introuvable ou chargée » en Java ? Java est un langage de programmation puissant qui permet aux développeurs de créer une large gamme d'applications. Cependant, sa polyvalence et son efficacité s'accompagnent d'une multitude d'erreurs courantes qui peuvent survenir lors du développement. L'une des interruptions est Erreur : classe principale user_jvm_args.txt introuvable ou chargée, ce qui se produit lorsque la machine virtuelle Java (JVM) ne trouve pas la classe principale pour exécuter un programme. Cette erreur agit comme un obstacle même dans

Différentes utilisations des barres obliques et des barres obliques inverses dans les chemins de fichiers Différentes utilisations des barres obliques et des barres obliques inverses dans les chemins de fichiers Feb 26, 2024 pm 04:36 PM

Un chemin de fichier est une chaîne utilisée par le système d'exploitation pour identifier et localiser un fichier ou un dossier. Dans les chemins de fichiers, il existe deux symboles courants séparant les chemins, à savoir la barre oblique (/) et la barre oblique inverse (). Ces deux symboles ont des utilisations et des significations différentes selon les systèmes d'exploitation. La barre oblique (/) est un séparateur de chemin couramment utilisé dans les systèmes Unix et Linux. Sur ces systèmes, les chemins de fichiers partent du répertoire racine (/) et sont séparés par des barres obliques entre chaque répertoire. Par exemple, le chemin /home/user/Docume

Comment résoudre le problème selon lequel jQuery ne peut pas obtenir la valeur de l'élément de formulaire Comment résoudre le problème selon lequel jQuery ne peut pas obtenir la valeur de l'élément de formulaire Feb 19, 2024 pm 02:01 PM

Pour résoudre le problème selon lequel jQuery.val() ne peut pas être utilisé, des exemples de code spécifiques sont requis. Pour les développeurs front-end, l'utilisation de jQuery est l'une des opérations courantes. Parmi eux, utiliser la méthode .val() pour obtenir ou définir la valeur d'un élément de formulaire est une opération très courante. Cependant, dans certains cas précis, le problème de ne pas pouvoir utiliser la méthode .val() peut se poser. Cet article présentera quelques situations et solutions courantes, et fournira des exemples de code spécifiques. Description du problème Lorsque vous utilisez jQuery pour développer des pages frontales, vous rencontrerez parfois

Quelle est la différence dans le chemin « Poste de travail » dans Win11 ? Un moyen rapide de le trouver ! Quelle est la différence dans le chemin « Poste de travail » dans Win11 ? Un moyen rapide de le trouver ! Mar 29, 2024 pm 12:33 PM

Quelle est la différence dans le chemin « Poste de travail » dans Win11 ? Un moyen rapide de le trouver ! Comme le système Windows est constamment mis à jour, le dernier système Windows 11 apporte également de nouvelles modifications et fonctions. L'un des problèmes courants est que les utilisateurs ne peuvent pas trouver le chemin d'accès à « Poste de travail » dans le système Win11. Il s'agissait généralement d'une opération simple dans les systèmes Windows précédents. Cet article présentera en quoi les chemins de « Poste de travail » sont différents dans le système Win11 et comment les trouver rapidement. Sous Windows1

Apprenez à diagnostiquer les problèmes courants de l'iPhone Apprenez à diagnostiquer les problèmes courants de l'iPhone Dec 03, 2023 am 08:15 AM

Connu pour ses performances puissantes et ses fonctionnalités polyvalentes, l’iPhone n’est pas à l’abri de contretemps ou de difficultés techniques occasionnelles, un trait commun aux appareils électroniques complexes. Rencontrer des problèmes avec votre iPhone peut être frustrant, mais aucune alarme n'est généralement nécessaire. Dans ce guide complet, nous visons à démystifier certains des défis les plus fréquemment rencontrés associés à l’utilisation de l’iPhone. Notre approche étape par étape est conçue pour vous aider à résoudre ces problèmes courants, en vous proposant des solutions pratiques et des conseils de dépannage pour remettre votre équipement en parfait état de fonctionnement. Que vous soyez confronté à un problème ou à un problème plus complexe, cet article peut vous aider à les résoudre efficacement. Conseils de dépannage généraux Avant de passer aux étapes de dépannage spécifiques, voici quelques conseils utiles

Le problème de la capacité de généralisation des modèles d'apprentissage automatique Le problème de la capacité de généralisation des modèles d'apprentissage automatique Oct 08, 2023 am 10:46 AM

La capacité de généralisation des modèles d'apprentissage automatique nécessite des exemples de code spécifiques. Avec le développement et l'application de l'apprentissage automatique de plus en plus répandus, les gens accordent de plus en plus d'attention à la capacité de généralisation des modèles d'apprentissage automatique. La capacité de généralisation fait référence à la capacité de prédiction d'un modèle d'apprentissage automatique sur des données non étiquetées et peut également être comprise comme l'adaptabilité du modèle dans le monde réel. Un bon modèle d’apprentissage automatique doit avoir une grande capacité de généralisation et être capable de faire des prédictions précises sur de nouvelles données. Cependant, dans les applications pratiques, nous rencontrons souvent des modèles qui fonctionnent bien sur l'ensemble d'entraînement, mais qui échouent sur l'ensemble de test ou sur des modèles réels.

Problèmes d'évaluation de l'effet de clustering dans les algorithmes de clustering Problèmes d'évaluation de l'effet de clustering dans les algorithmes de clustering Oct 10, 2023 pm 01:12 PM

Le problème d'évaluation de l'effet de clustering dans l'algorithme de clustering nécessite des exemples de code spécifiques. Le clustering est une méthode d'apprentissage non supervisée qui regroupe des échantillons similaires dans une seule catégorie en regroupant les données. Dans les algorithmes de clustering, la manière d’évaluer l’effet du clustering est une question importante. Cet article présentera plusieurs indicateurs d'évaluation de l'effet de clustering couramment utilisés et donnera des exemples de code correspondants. 1. Indice d'évaluation de l'effet de clustering Coefficient Silhouette Le coefficient Silhouette évalue l'effet de clustering en calculant la proximité de l'échantillon et le degré de séparation des autres clusters.

Problèmes de conception de récompense dans l'apprentissage par renforcement Problèmes de conception de récompense dans l'apprentissage par renforcement Oct 08, 2023 pm 01:09 PM

Le problème de la conception des récompenses dans l'apprentissage par renforcement nécessite des exemples de code spécifiques. L'apprentissage par renforcement est une méthode d'apprentissage automatique dont l'objectif est d'apprendre à prendre des mesures qui maximisent les récompenses cumulatives grâce à l'interaction avec l'environnement. Dans l’apprentissage par renforcement, la récompense joue un rôle crucial. Elle constitue un signal dans le processus d’apprentissage de l’agent et sert à guider son comportement. Cependant, la conception des récompenses est un problème difficile, et une conception raisonnable des récompenses peut grandement affecter les performances des algorithmes d’apprentissage par renforcement. Dans l’apprentissage par renforcement, les récompenses peuvent être considérées comme l’agent contre l’environnement.

See all articles