PDA

View Full Version : java e pagine web


carMAN
07-09-2004, 15:51
ho due domande da proporvi?

1) è possibile implementare in java un browser per pagine web?

2) dato un certo url, come faccio ha recuperare tutto lo script html che definisce la pagina indirizzata dall'url?

grazie e ciao ciao

kingv
07-09-2004, 22:41
Originariamente inviato da carMAN
ho due domande da proporvi?

1) è possibile implementare in java un browser per pagine web?




con estrema facilità, se ti acontenti di un browser dalle funzionalità molto semplici.
esistono componnti grafiche che fanno il rendering dell'html e le classi per il supporto ai piu' diffusi protocolli (HTTP, HTTPS, FTP).
fino a qualche anno fa Sun ha sviluppato un browser (HotJava) totalmente in Java.

kingv
07-09-2004, 22:44
Originariamente inviato da carMAN

2) dato un certo url, come faccio ha recuperare tutto lo script html che definisce la pagina indirizzata dall'url?



ad esempio



try
{
URL url = new URL("http://java.sun.com/index.jsp");

BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream()));
String string;
while ((string = br.readLine()) != null)
{
System.out.println(string);
}
br.close();
}
catch (MalformedURLException e)
{
}
catch (IOException e)
{
}

carMAN
08-09-2004, 19:22
grazi per il tuo aiuto, sei sempre impeccabile.

Vorrei un altro aiutino, se ti è possibile.

Abbiamo visto come sia possibile recuperare l'html di una certa pagina. SUpponiamo, ora, che in questa pagina ci sia un bottone. Vorrei un'applicazione che riconoscesse questo bottone, lo prema e mi restituisca il codice html della pagina seguente!
Sai come si potrebbe fare? ti ringrazio vivamente!!!!
ciao ciao

kingv
08-09-2004, 21:58
Originariamente inviato da carMAN
grazi per il tuo aiuto, sei sempre impeccabile.

Vorrei un altro aiutino, se ti è possibile.

Abbiamo visto come sia possibile recuperare l'html di una certa pagina. SUpponiamo, ora, che in questa pagina ci sia un bottone. Vorrei un'applicazione che riconoscesse questo bottone, lo prema e mi restituisca il codice html della pagina seguente!
Sai come si potrebbe fare? ti ringrazio vivamente!!!!
ciao ciao


naturalmente si puo' fare ;) .

se quello che vuoi fare e' premere il bottone e ottenere l'HTML del risultato puoi farlo in un unico passaggio.
il bottone in una pagina HTML puo' essere contenuto solo all'interno di una form (tag <FORM>). La form ha una proprietà che si chiama action (per esempio guarda la pagina di ricerca di google). Questa proprietà non è altro che l'URL che verrà richiamata all'invio della form.
Nel caso di google questa proprietà vale "/search", ovvero quando premi il pulsante "cerca" viene richiamata la URL http://www.google.com/search
Ti basta quindi utilizzare il codice precedente e in buona parte dei casi funzionerà.

Non sono pero' tutte buone notizie, una complicazione ad esempio e' che generalmente in una form, prima di spedirla, devi compilare i campi (di testo, oppure i menu a tendina a così via) e la pagina risultato dipenderà dai dati che vengono postati.
Un'altra e' che col codice postato precedentemente l'operazione http che viene eseguita e' quella di una GET, mentre una form richiederebbe una POST. Molti server non ci faranno caso e soddisferanno ugualmente la richiesta, altri invece no.

Scrivere il codice per tenere conto di questi requisiti non è impossibile, ma sinceramente se il tuo scopo non è imparare i dettagli del protocollo HTTP ti consiglierei di utilizzare qualche libreria di classi che si prenda carico di queste operazioni.

kingv
08-09-2004, 22:00
Ti consiglio di dare un occhio al HttpClient che hannoi sviluppoto quelli dell' Apache Group.

http://jakarta.apache.org/commons/httpclient/

In particolare nella documentazione trovi esattamente un esempio di un post di una form con parametri:
http://jakarta.apache.org/commons/httpclient/methods/post.html



Buon lavoro :D