


Explication détaillée des chemins relatifs et des chemins absolus en Java (Web)
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() )
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")); }}
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
Utilisez comme ceci :
new FileInputStream("./yourconfig/yourconf.properties");
Les deux méthodes sont disponibles, vous pouvez choisir.
comme racine. test File f = new File("a.htm" );
Ce a.htm se trouve dans le répertoire d'installation de résine
WEB-INF/classes sous le chemin racine de publicationLe 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
www.51cto.com/html/2005/1108/10947.htm
www.gamvan.com/developer/java/2005/2/264.html
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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

Sujets chauds

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

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

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 ! 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

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

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.

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.

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.
