Ouvrir une page HTML

[Résolu]
Signaler
Messages postés
406
Date d'inscription
samedi 26 mars 2005
Statut
Membre
Dernière intervention
29 juin 2009
-
Messages postés
406
Date d'inscription
samedi 26 mars 2005
Statut
Membre
Dernière intervention
29 juin 2009
-
Bonjour,

Je suis à la recherche d'une solution pour ouvrir une page HTML depuis du code JAVA. Sachant que je travaille avec un jdk 1.4 et éventuellement 1.5. Je suis bloquée dans ses jdk par des contraintes de mon entreprise....oui je sais c'est pas le top ;-).

Auriez vous une petite piste?

merci beaucoup

Lafolle

12 réponses

Messages postés
332
Date d'inscription
mardi 12 juillet 2005
Statut
Membre
Dernière intervention
17 juillet 2010

Bizare, chez moi
import java.awt.BorderLayout;
import java.awt.Container;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.io.*;

import javax.swing.*;

public class Essai {
    public static void main(String[] args) {
   
     JFrame frame = new JFrame("Drag");

     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   

     Container content = frame.getContentPane();

     JPanel inner = new JPanel();
     JLabel text = new JLabel(ConnexionServer("http://www.perdu.com/"));
     inner.add(text);
     content.add(inner);

     frame.pack();

     frame.show();
    //      System.out.println(ConnexionServer("http://pc-126.cesr.fr/"));
    }

    public static String ConnexionServer(String adresse){
        String toreturn = null;
             try{
                 //creation d'un objet URL
                 URL url = new URL(adresse);
                 //on etablie une connection a cette url
                 try{
                     URLConnection uc = url.openConnection();
                     //on y cree un flux de lecture
                     InputStream in = uc.getInputStream();
                     // on lit le premier bit
                     int c = in.read();
                     //on cree un StringBuilder pour par la suite y ajouter tout les bit lus
                     StringBuilder build = new StringBuilder();
                     //tant que c n'est pas egale au bit indiquant la fin d'un flux...
                     while(c != -1) {
                         build.append((char) c);
                         //...on l'ajoute dasn le StringBuilder...
                         c = in.read();
                         //...on lit le suivant
                     }
                     //on retourne le code de la page
                     toreturn = build.toString();
                }
                catch(MalformedURLException e) {e.printStackTrace();}
             }
            catch(IOException e) {e.printStackTrace();}
             return toreturn;
    }
}
fonctionne (même si déprécié).
et sinon, comme là dit amundain:
new JEditorPane text = new JEditorPane("http://www.google.fr");
Messages postés
332
Date d'inscription
mardi 12 juillet 2005
Statut
Membre
Dernière intervention
17 juillet 2010

Bonjour,
pas très précis comme question, si la page est local, vous
pouvez l'ouvrir comme un fichier normal, si elle distante avec une
URLConnection, si le but est de la parser, il y a HTML Parser (qu'une
simple recherche sur le web permet de trouver). Si le but est de faire
ouvrir le navigateur web sur une page, il faut regarder du côté des
lignes de commande.
http://kysicurl.free.fr/
Messages postés
406
Date d'inscription
samedi 26 mars 2005
Statut
Membre
Dernière intervention
29 juin 2009
7
çà veut dire quoi exactement "Parser???"
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
126
oui et puis reste à savoir si c'est du J2SE, ou du J2EE... et où tu veux l'ouvrir ta page HTML !
Messages postés
332
Date d'inscription
mardi 12 juillet 2005
Statut
Membre
Dernière intervention
17 juillet 2010

En gros, le verbe "parser" veut dire analyser (syntaxiquement) le contenu d'un document pour en extraire l'information, et le nom "parser" ou analyseur syntaxique désigne l'algorithme ou le programme qui s'en charge.
Définition web:
<li>Parser est l'acte par lequel un document est
examiné, et par lequel l'information contenue à l'intérieur de ce
document est filtré dans le contexte des éléments structurant
l'information.http://www.visionduweb.com/lesplus/lexique/p.php4&usg=AFQjCNGSF9wkR8w_eFPE-ymF2Sz8RLH5Dw' target='_blank'>www.visionduweb.com/lesplus/lexique/p.php4</li>
Messages postés
406
Date d'inscription
samedi 26 mars 2005
Statut
Membre
Dernière intervention
29 juin 2009
7
En fait j'ai réussi à obtenir le code html de la page web dans java mais j'aimerai maintenant voir cette même page dans un textarea... pour pouvoir m'affranchir du navigateur et ainsi faire un code multi plateforme.

voici mon début d'essai pour mieux comprendre :
import java.awt.BorderLayout;
import java.awt.Container;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.io.*;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;

import sun.security.krb5.internal.crypto.e;

public class Exec{
public static void main(String[] args) {

JFrame frame = new JFrame("Drag");

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


Container content = frame.getContentPane();

JPanel inner = new JPanel();
JTextArea text = new JTextArea("<HTML>"+ConnexionServer("http://pc-126.cesr.fr/")+"</HTML>");
inner.add(text);
content.add(inner);


frame.pack();

frame.show();
// System.out.println(ConnexionServer("http://pc-126.cesr.fr/"));
}


public static String ConnexionServer(String adresse){
String toreturn = null;
try{
//creation d'un objet URL
URL url = new URL(adresse);
//on etablie une connection a cette url
try{
URLConnection uc = url.openConnection();
//on y cree un flux de lecture
InputStream in = uc.getInputStream();
// on lit le premier bit
int c = in.read();
//on cree un StringBuilder pour par la suite y ajouter tout les bit lus
StringBuilder build = new StringBuilder();
//tant que c n'est pas egale au bit indiquant la fin d'un flux...
while(c != -1) {
build.append((char) c);
//...on l'ajoute dasn le StringBuilder...
c = in.read();
//...on lit le suivant
}
//on retourne le code de la page
toreturn = build.toString();
}
catch(MalformedURLException e) {e.printStackTrace();}
}
catch(IOException e) {e.printStackTrace();}
return toreturn;
}
}

merci

lafolle
Messages postés
110
Date d'inscription
mercredi 28 mars 2007
Statut
Membre
Dernière intervention
28 août 2012
1
Salut,

Il me semble que pour afficher du HTML sous Java il faut plutôt regarder du côté de la classe JEditorPane que du côté des JTextArea...la JEditorPane reconnait le HTML et l'affiche comme un navigateur.


A +,

amundain


<hr size="2" width="100%" />Java bien,merci.
Messages postés
2113
Date d'inscription
samedi 8 novembre 2003
Statut
Contributeur
Dernière intervention
6 octobre 2012
11
la encore il y a tout les exmple qu il faut fournit par sun .. ;o)
qd au html ;o) un simple JLabel l interprete ... ;o)
il n y a rien de plus simple que de faire un browser en java.... ;o)
par contre pour lire tout ce qui est flash et compagni ;o) la! y a du boulot..... ;o)

GodConan ;o)
Messages postés
406
Date d'inscription
samedi 26 mars 2005
Statut
Membre
Dernière intervention
29 juin 2009
7
JLabel supporte l'HTML aussi.... mais je comprend pas comment on doit le forcer à interpréter au lieu d'écrire le html,

merci

lafolle
Messages postés
332
Date d'inscription
mardi 12 juillet 2005
Statut
Membre
Dernière intervention
17 juillet 2010

Re,
essayer avec
JLabel text = new JLabel(ConnexionServer("http://www.perdu.com/"));

Si vous essayer sur une autre page, vérifier qu'elle n'a pas de dépendance (script externe, style externe ....), le problème venant surement de là.
Messages postés
406
Date d'inscription
samedi 26 mars 2005
Statut
Membre
Dernière intervention
29 juin 2009
7
tjs le même problème..... même si il n'y a pas de lien
Messages postés
406
Date d'inscription
samedi 26 mars 2005
Statut
Membre
Dernière intervention
29 juin 2009
7
la solution fonctionne mais uniquement pour des pages simples... pour afficher google déjà moi çà bug...
Je vais essayer dabs cette direction en tout cas.

merci beaucoup à vous

bonne suite

lafolle