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 :

Obtenir l'URL active dans le navigateur


Sujet :

API standards et tierces Java

  1. #1
    lebulu
    Invité(e)
    Par défaut Obtenir l'URL active dans le navigateur
    Salut à tous

    J'ai besoin de votre aide :

    Je souhaite créer une appli (externe) Java qui détecte l'URL active dans le navigateur Web et je ne trouve pas comment faire sur le net.

    A priori, ce n'est pas possible avec l'API standard.

    Pouvez-vous m'aider ?

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Impossible directement en Java.
    Peut-être devrais-tu redéfinir ton besoin. Pourquoi veux-tu faire ça ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Il y a dans l'en-tête http une propriété "referer" qui permet de récupérer côté serveur l'URL d'appel
    Malheureusement, tous les serveurs ne la transmettent pas...

    Une alternative serait de récupérer cette valeur par du code javascript (window.location.xxxx) et de transmettre la valeur à la servlet. Là tu as le choix, un champ caché de formulaire ou via un lien.

    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    lebulu
    Invité(e)
    Par défaut
    Merci pour vos réponses.

    En fait j'ai créé une appli en Java qui récupère du code HTML et le filtre (frames, tableaux de mise en page, menus, images, etc.). Ceci dans le but de ne récupérer que le contenu textuel de la page, c'est-à-dire éliminer tous les éléments superflus et ne récupérer que l'information utile.

    C'est un projet qui vise à améliorer le quotidien des déficients visuels qui surfent sur le Web en utilisant des claviers brailles ou des synthétiseurs vocaux. Quelque soit la page HTML, elle est lue de façon linéaire, c'est-à-dire de gauche à droite et de haut en bas.

    Bref, on entre une URL dans mon IHM et elle affiche automatiquement la nouvelle page dans le navigateur Web. J'aurai voulu que mon algo puisse détecter automatiquement l'URL active dans le navigateur plutôt que de devoir faire un Copier - Coller, ce qui simplifierai largement l'utilisation de mon appli.

  5. #5
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Et comment comptes-tu récupérer le contenu html de la page appelante ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    C'est bizarre comme technique !
    Ton appli pourrait être un proxy pour le navigateur. Le navigateur passe toujours par ton appli. Ensuite, ton appli filtre ce qu'elle veut et renvoie le résultat au navigateur.
    Avec la technique que tu décris, comment comptes-tu faire pour transmettre le contenu HTML au navigateur ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  7. #7
    lebulu
    Invité(e)
    Par défaut
    Pour récupérer le contenu HTML de la page appelante :

    J'ouvre en entrée une page HTML (locale ou externe) et je récupère son code via une librairie Java (Jericho en l'occurence) qui permet de parser du HTML.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    import java.net.*;
    import au.id.jericho.lib.html.*;
     
    String url1="http://www.developpez.com/";
    Source source1=new Source(new URL(url1));
    Donc mon objet source1 contient le code de la page et Jericho me permet d'appliquer différents traitements sur ce code.

    Pour transmettre le contenu HTML au navigateur :

    Je crée un fichier HTML sur la machine de l'utilisateur (j'utilise la même technique que pour les fichiers .txt en lui donnant dès le départ l'extension .html). J'écris le code HTML dans ce fichier et le ferme.

    Pour ouvrir le fichier sur le navigateur par défaut, j'utilise l'objet Desktop.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    if(Desktop.getDesktop().isSupported(Desktop.Action.OPEN))
    {
          try
          {
                Desktop.getDesktop().open(new File(file));
          }
     
          catch(Exception e)
          {
                e.printStackTrace();
          }
    }
    Tout ça marche impec'. Mon but est juste de simplifier l'utilisation de l'appli en détectant automatiquement l'URL active sur le navigateur, plutôt que d'obliger l'utilisateur à effectuer un Copier-Coller à chaque fois.

  8. #8
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    OK pour moi...

    Comme on ne peut (à priori) pas se fier au referer, je te suggère une façon de procéder.

    Tu pourrais finalement fournir une page pour cette fonctionnalité.
    En utilisant un frame (ou une IFrame), il suffirait alors de saisir l'URL dans un champ text (plutôt que la barre de navigation) et de transmettre cette url au cadre d'affichage (ou à l'IFrame) et à ton application.

    Ça te semble jouable ?

    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  9. #9
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    C'est "lourd" techniquement parlant.
    Tu pourrais faire tout à la voler en faisant un vrai proxy. Tu pourrais refaire recoder le protocole si tu as un peu de temps, ou alors utiliser une API existante. Il y en a à foison.
    L'utilisateur pourrait utiliser son navigateur sans attendre que ton appli relance une page dans le navigateur.
    Pour l'utilisateur, tout serait transparent.

    Récupérer l'URL du navigateur n'étant pas possible en Java, je t'encourage vivement à explorer la voie du Proxy http. En plus, pour l'utilisateur final, se sera moins déroutant.

    Bon courage
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/03/2011, 17h43
  2. recuperer url present dans le navigateur web ?
    Par arioule dans le forum ASP.NET
    Réponses: 3
    Dernier message: 26/07/2010, 12h38
  3. si le javascript n'est pas activé dans le navigateur client
    Par yacine.dev dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 18/03/2010, 12h24
  4. Réponses: 1
    Dernier message: 10/07/2008, 10h14
  5. URL substitué dans le navigateur
    Par softblue-creations dans le forum OVH
    Réponses: 0
    Dernier message: 19/09/2007, 11h34

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