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

API standards et tierces Java Discussion :

Transformer de fa�on propre une URL (plus simple qu’un substring)


Sujet :

API standards et tierces Java

  1. #1
    Membre �prouv�
    Avatar de geforce
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Janvier 2010
    Messages
    1 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 1 055
    Par d�faut Transformer de fa�on propre une URL (plus simple qu’un substring)
    Bonjour,
    Je cherche un moyen simple et propre de remplacer le derni�re �l�ment d�une URL (le bout qui d�signe le fichier pointer) donc le r�orientes v�re une page qui se trouve sur le m�me dossier que je connais pr�alablement
    Voil� comment je r�cup�r� mon URL
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
            HttpServletRequest request = (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();
            StringBuffer path2 = request.getRequestURL();
            System.out.println("-------path2------: " + path2);
    Voil� UN exemple de r�sultant (dans le console)
    INFO: -------path2------: http://localhost:8080/Administration-war/faces/administration/refGestion/sp/pageCrud.xhtml[/url]
    Je voudrais donc transformait le � pageCrud .xhtml� par �pageModif.xhtml� quel sont les fa�ons de faire.

    Merci d�avance

  2. #2
    Mod�rateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par d�faut
    Je pense pas qu'il y ait bien plus propre que juste changer la portion apr�s le dernier /
    Ce qui consiste donc � r�cup�rer le dernier slash et tout ce qu'il y a avant, puis d'y ajouter le nom de fichier.

    Ce qui peut se faire de deux fa�ons :

    - chercher le dernier / avec lastIndexOf() et faire substring() sur tout ce qu'il y a avant.

    - extraire la regex ".*/" de l'URL avec Matcher.find()
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre �prouv�
    Avatar de geforce
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Janvier 2010
    Messages
    1 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 1 055
    Par d�faut
    OK MERCI

    que dit vous de cette solution
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
        public StringBuffer currentUrlModifiPage(){
            HttpServletRequest request = (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();
            StringBuffer urlCurrent = request.getRequestURL();
            int lastIndex = urlCurrent.lastIndexOf("/");
            int sizeUrl = urlCurrent.length();
     
            return ( urlCurrent.replace(lastIndex, sizeUrl, "/pageModif.xhtml") );
        }

  4. #4
    Mod�rateur
    Avatar de paissad
    Homme Profil pro
    Ing�nieur de d�veloppement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Inscrit en
    Avril 2006
    Messages
    1 043
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 39
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : Ing�nieur de d�veloppement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 043
    Par d�faut
    Bonjour,
    ta m�thode est bonne, mais tu peux aussi utiliser URL ou URI
    Par exemple pour URL, tu peux utiliser la m�thode getFile() ou getPath() pour r�cup�rer directement le dernier �l�ment (avec ou sans l'ancre)
    Par exemple:
    Code java : S�lectionner tout - Visualiser dans une fen�tre � part
    new URL("http://domain.com/foo/bar.xml").getPath();
    retournera ---> bar.xml

    NB: Selon moi, ta m�thode est dangereuse (voire fausse) si tu as une URL du genre
    ou
    le(s) dernier(s) slash te donneront des faux positifs je pense

    Cordialement,
    Nous n'h�ritons pas de la terre de nos parents, nous l'empruntons � nos enfants.
    Le chat du site est aussi ici pour aider. Ne pas h�siter � visiter !

  5. #5
    Mod�rateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par d�faut
    Citation Envoy� par geforce Voir le message
    que dit vous de cette solution
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
        public StringBuffer currentUrlModifiPage(){
            HttpServletRequest request = (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();
            StringBuffer urlCurrent = request.getRequestURL();
            int lastIndex = urlCurrent.lastIndexOf("/");
            int sizeUrl = urlCurrent.length();
     
            return ( urlCurrent.replace(lastIndex, sizeUrl, "/pageModif.xhtml") );
        }
    Pourquoi pas, bien que je ne vois pas en quoi le StringBuffer aide � quoi que ce soit. (On pr�f�rera un StringBuilder, d'ailleurs : ils ne sont pas synchronis�s, eux.)

    Citation Envoy� par paissad Voir le message
    mais tu peux aussi utiliser URL ou URI
    Par exemple pour URL, tu peux utiliser la m�thode getFile() ou getPath() pour r�cup�rer directement le dernier �l�ment (avec ou sans l'ancre)
    Par exemple:
    Code java : S�lectionner tout - Visualiser dans une fen�tre � part
    new URL("http://domain.com/foo/bar.xml").getPath();
    retournera ---> bar.xml
    Euh ? Non... C'est pas vrai.

    Par ailleurs, ce qui est demand�, c'est pas le dernier �l�ment, c'est tout sauf le dernier �l�ment, nuance.

    � ma connaissance ni URL ni URI ne permettent de "remonter d'un cran dans le path", ce qui est bien dommage vu que les URIs relatives fonctionnent comme �a, et que �a aiderait bien � les g�rer.

    Citation Envoy� par paissad Voir le message
    NB: Selon moi, ta m�thode est dangereuse (voire fausse) si tu as une URL du genre
    ou
    le(s) dernier(s) slash te donneront des faux positifs je pense
    � g�rer si besoin, oui, v�rifier que �a se termine pas par un /
    La d�finition des URIs relatives parle en effet de ce point.
    Mais bon, c'est pas le cas des exemples montr�s.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Expert confirm�
    Avatar de sinok
    Profil pro
    Inscrit en
    Ao�t 2004
    Messages
    8 765
    D�tails du profil
    Informations personnelles :
    �ge : 45
    Localisation : France, Paris (�le de France)

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 8 765
    Par d�faut
    Une rewrite rule sur le serveur apache que tu auras bien s�r mis en front de ton serveur d'application java, c'est ce qu'il y aurait de plus propre.

    Serveur apache qui devrait �galement servir tout le contenu statique de ton application (genre images, CSS & cie).

  7. #7
    Expert confirm�
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 61
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : Urbaniste
    Secteur : Sant�

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par d�faut
    il suffit de cr�er un Objet URI
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    uri = new URI("http://...../path/foo/bar.ext");
    de r�cup�rer le path
    et d'extraire tout sauf le dernier �l�ment
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
        int sep = path.lastIndexOf(java.io.FIle.pathSeparatorChar);
    fullPath = path.substring(0, sep);
    mais je suis d'accord sur le fait que mieux vaut configurer son serveur web correctement que d'�crire un bout de code.
    A+JYT

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 1
    Dernier message: 16/05/2013, 16h31
  2. [Prototype] Ecrire de fa�on plus propre une ligne de code
    Par baggie dans le forum Biblioth�ques & Frameworks
    R�ponses: 0
    Dernier message: 12/06/2012, 11h29
  3. Une ecriture plus simple ?
    Par krislec dans le forum Langage
    R�ponses: 9
    Dernier message: 10/10/2011, 18h01
  4. Transformer une URL en chemin windows
    Par Wells dans le forum VB.NET
    R�ponses: 6
    Dernier message: 26/10/2007, 10h56
  5. [JDOM] Moyen le plus simple de valider une trame XML que l'on vient de cr�er ?
    Par scougirou dans le forum Format d'�change (XML, JSON...)
    R�ponses: 1
    Dernier message: 15/06/2007, 14h16

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