IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

[URL] url relative et absolue


Sujet :

Servlets/JSP Java

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    370
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Avril 2006
    Messages : 370
    Points : 223
    Points
    223
    Par défaut [URL] url relative et absolue
    Voila, afin de peiner le moins possible dans l'écriture de mon code et dans le mainient de celui-ci. J'aurais aimer savoir si il était possible de placer les differentes URL d'accès à mes pages de manière relative à mon site plutot que absolue

    Exemple :

    Un menu peut t'il se faire comme ceci (ici en local ca marche mais en reel sur le net ?) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <dt><a href=<c:url value="/pages/restricted/restrictedAdmin/modifCptAdmin.jsp" />>Modification du compte administrateur</a></dt>
    et d'un autre coté j'ai certain lien comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <dt><a href=<c:url value="http://localhost:8080/transfertFichier/main?action=1" />>Consultation de la liste des fichiers</a></dt>
    ou pour les formulaire par exemple comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form name="suppression"  action="http://localhost:8080/transfertFichier/GestionFichier" method="post">
    En résumé, y a t'il moyen de ne pas faire allusion à l'adresse complète avec
    www.monsite.com/contexte. Afin evidemment de pouvoir changer l'adresse ou autre à sa guise sans devoir rechercher dans tout son code les reference vers celle ci.
    La posix attitude ...

  2. #2
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Pour récupérer le contexte de ton appli, tu peux utiliser request.getContextPath().

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <form name="suppression" action="<%=request.getContextPath()+"/GestionFichier"%>" method="post">
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a href="<%=request.getContextPath()+"/main?action=1"%>">Consultation de la liste des fichiers</a>
    Modératrice Java - Struts, Servlets/JSP, ...

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    370
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Avril 2006
    Messages : 370
    Points : 223
    Points
    223
    Par défaut
    Peut être que c'est due au fait que mon menu est dans un fichier séparé, mais cela ne fonctionne pas le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.getContextPath()
    ne retourne rien ...
    La posix attitude ...

  4. #4
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Citation Envoyé par K-Kaï
    Peut être que c'est due au fait que mon menu est dans un fichier séparé
    Comment ça ?
    Modératrice Java - Struts, Servlets/JSP, ...

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    370
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Avril 2006
    Messages : 370
    Points : 223
    Points
    223
    Par défaut
    Oue non c'est une connerie, vu que mon menu est inclut dans la page, il devrai bien connaitre la requète hors la il me traite request.getContextPath() comme une chaine vide.
    La posix attitude ...

  6. #6
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Peux-tu montrer comment tu as codé le request.getContextPath() dans ta jsp stp ?
    Modératrice Java - Struts, Servlets/JSP, ...

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    370
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Avril 2006
    Messages : 370
    Points : 223
    Points
    223
    Par défaut
    Exactement comme ce que tu m'a donnée juste au dessus en fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%=request.getContextPath()+"transfertFichier/main?action=1"%>>Consultation de la liste des fichiers</a>
    Qui spécifie que je veux joindre ma servlet main en get ...

    Voici par exemple mon fichier gérant le menu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    <%@ page language="java" contentType="text/html; charset=iso-8859-1"
        pageEncoding="iso-8859-1"%> 
    <%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>    	
    <dl id="menu">
    			<dt><a href=<c:url value="/pages/restricted/restrictedAdmin/inscriptionUser.jsp" />>Inscription utilisateur</a></dt>
     
    			<dt onmouseover="javascript:montre('smenu1');" onmouseout="javascript:montre();"><a href="#">Consultation utilisateur</a></dt>
    				<dd id="smenu1" onmouseover="javascript:montre('smenu1');" onmouseout="javascript:montre();">
    				<ul>
    					<li><a href=<c:url value="http://localhost:8080/transfertFichier/main?action=3" />>Liste complète des utilisateurs</a></li>
    					<li><a href=<c:url value="/pages/restricted/restrictedAdmin/rechercheUser.jsp" />>Rechercher un utilisateur particulier</a></li>
    				</ul>
    			</dd>	
     
    			<dt><a href=<c:url value="http://localhost:8080/transfertFichier/main?action=1"/>> Consultation de la liste des fichiers</a></dt>
    			<dt><a href=<c:url value="/pages/restricted/restrictedAdmin/modifCptAdmin.jsp" />>Modification du compte administrateur</a></dt>
    			<dt><a href=<c:url value="http://localhost:8080/transfertFichier/main?action=2" />>Deconnexion</a></dt>
    		</dl>
    Et donc pour les acces aux pages direct, pas de problème (enfin en local) en spécifiant l'URL relative : "/pages/restricted/restrictedAdmin/modifCptAdmin.jsp" par exemple.

    MAis pour le reste, formulaire et acces direct aux servlet, j'aimerai un moyen de me passer du http://localhost:8080 afin que lors de la mise en ligne avec nom de domaine etc et lors de maintenance je n'est pas à rechercher dans tout mon code et remplacer.

    Je pense en effet que le requet.getContextPath() et la bonne piste ...
    La posix attitude ...

  8. #8
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Si tu codes ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a href="<%=request.getContextPath()+"/main?action=1"%>">Consultation de la liste des fichiers</a>
    et si tu mets la souris sur le lien, il t'affiche quoi comme url ?

    Normalement, il devrait te mettre ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://localhost:8080/transfertFichier/main?action=1
    Modératrice Java - Struts, Servlets/JSP, ...

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    370
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Avril 2006
    Messages : 370
    Points : 223
    Points
    223
    Par défaut
    Juste une petite question c'est quoi ton .do ?
    La posix attitude ...

  10. #10
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Toutes les url se terminant par .do sont redirigées vers ActionServlet, soit le contrôleur Struts.
    Je n'aurais pas dû le mettre vu que tu n'utilises pas Struts.

    PS : j'ai supprimé les '.do' dans mes réponses précédentes.
    Modératrice Java - Struts, Servlets/JSP, ...

  11. #11
    Membre actif
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    370
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Avril 2006
    Messages : 370
    Points : 223
    Points
    223
    Par défaut
    Chose bizarre, lorsque je code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    value="<%=request.getContextPath()+"/main?action=1"%>"
    J'obtiens
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    http://localhost:8080/transfertFichier/transfertFichier/main?action=1
    En fait le request.getContextPath() me retourne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    http://localhost:8080/transfertFichier/transfertFichier
    au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    http://localhost:8080/transfertFichier
    La posix attitude ...

  12. #12
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    value="<%=request.getContextPath()+"/main?action=1"%>"
    c'est dans le tag <c:url> que tu l'as mis ou directement dans le href ?

    Je me demande si le tag <c:url> ne te rajoutes pas automatiquement le contexte soit /transfertFichier.
    Modératrice Java - Struts, Servlets/JSP, ...

  13. #13
    Membre actif
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    370
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Avril 2006
    Messages : 370
    Points : 223
    Points
    223
    Par défaut
    C'est en effet dans le tag <c:url>, qui me permet de prolonger les id de session en cas de non acceptation des cookies ...

    Et tu crois qu'il serait capable de me rajouter le /transfertFichier pile poil entre l'adresse de connexion et la page demandé ? Ca me parait louche ...

    Edit: bingo, je viens de tester tu as raison ..., alors comment puis-je faire pour me sortir de la, à savoir profiter des avantage du <c:url> et qu'il vienne pas se meler de ce qui le regarde pas ?
    La posix attitude ...

  14. #14
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Citation Envoyé par K-Kaï
    C'est en effet dans le tag <c:url>, qui me permet de prolonger les id de session en cas de non acceptation des cookies ...

    Et tu crois qu'il serait capable de me rajouter le /transfertFichier pile poil entre l'adresse de connexion et la page demandé ? Ca me parait louche ...

    Edit, bongo, je vien de tester tu as raison ..., alors comment puis-je faire pour me sortir de la, à savoir profiter des avantage du <c:url> et qu'il vienne pas se meler de ce qui le regarde pas ?
    A la place du <c:url>, code ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="<%=request.getContextPath()+response.encodeURL("/main?action=1")%>">
    Modératrice Java - Struts, Servlets/JSP, ...

  15. #15
    Membre actif
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    370
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Avril 2006
    Messages : 370
    Points : 223
    Points
    223
    Par défaut
    OUe okok, pas possible d'utilider la jstl dans mon cas si j'ai bien compris, dommage ca simplifié bien la vie ce bidule.

    Sinon c'est bon ca semble marcher convenablement de la sorte.
    La posix attitude ...

  16. #16
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Mais en fait, as-tu fait un test avec un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="<c:url value='/main?action=1'/>">
    tout simplement ?

    ça devrait te donner l'url suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://localhost:8080/transfertFichier/main?action=1
    Modératrice Java - Struts, Servlets/JSP, ...

  17. #17
    Membre actif
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    370
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Avril 2006
    Messages : 370
    Points : 223
    Points
    223
    Par défaut
    C'est tout bon c_nvy je te remercie grandement

    [auto flagelation ON]
    J'avoue je viens de relire avec attention le tuto sur la jstl de dvp.com et c'était bien expliqué cette histoire de contexte dans la partie traitant le tag url ...
    [auto flagelation OFF]
    La posix attitude ...

  18. #18
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    De rien.
    Désolée de n'avoir pas trouvé plus tôt, c'était si simple...
    Modératrice Java - Struts, Servlets/JSP, ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 03/08/2013, 19h07
  2. [RegEx] Regex urls relatives et absolues
    Par flo974 dans le forum Langage
    Réponses: 2
    Dernier message: 20/09/2010, 11h03
  3. [CS3] URL des images en absolues
    Par fabiin dans le forum Dreamweaver
    Réponses: 2
    Dernier message: 16/03/2010, 16h56
  4. vérifier la validité d'une url (abs/rel)
    Par jacky12 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 06/05/2006, 13h59
  5. [Débutant] position relative et absolue
    Par AurelBUD dans le forum Balisage (X)HTML et validation W3C
    Réponses: 9
    Dernier message: 23/06/2005, 08h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo