View Full Version : Applet java
Salve a tutti spero proprio di trovare un aiuto qui perché ho già cercato a lungo ma non riesco a trovare ciò che mi interessa.
Volevo sapere se è possibile reindirizzare il browser in un'altra pagina da un applet.
Mi spiego meglio, ho un applet che dialoga con un server (e non una servlet, ecco l'inghippo), quando eseguo una certa operazione da browser vorrei essere reindirizzato a un'altra pagina, si può fare?
Che alternative ho? Posso almeno fare una finestra di popup?
Secondo la documentazione dovrebbe essere una cosa così:
import java.net.*;
...
da qualche parte nell'applet
try {
URL url=new URL("qui_l'indirizzo_web");
getAppletContext().showDocument(url);
} catch(MalformedURLException e) {
//gestione eccezione nel caso di un URL non correttamente
//formato
}
showDocument(..) cambia la pagina web visualizzata.
Non ho mai provato, ma dovrebbe andare.
Innanzi tutto grazie! Per un paio di minuti ho sognato, poi è uscito questo:
Warning: Could not get charToByteConverterClass!
e nient'altro, l'errore di console più corto che abbia mai visto.
che te ne pare?
import java.applet.*;
import java.awt.*;
import java.net.*;
public class Applez extends Applet {
Button button=new Button("Press to change");
//un java.net.URL richiede un protocollo, se manca rilascia
//un'eccezione MalformedURLException
TextField tField=new TextField("http://www.hwupgrade.it");
public Applez() {
add(button);
add(tField);
}
//gestione degli eventi vecchia come il cucco, ma è supportata
//da tutti i browser
public boolean action(Event e, Object o) {
if(e.target instanceof Button) {
try {
getAppletContext().showDocument(new URL(tField.getText()));
} catch(MalformedURLException ex) {
//l'eccezione deve essere gestita
System.out.println(ex);
}
return true;
}
return false;
}
}
Testato, funziona.
Per quanto riguarda l'errore, è un bug del server apache
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20304
E' possibile (ma non sono sicuro) che il client debba avere installato il plug-in Java di Sun perchè la faccenda si risolva perchè il package sun.* è distribuito con il JRE di Sun ma non dovrebbe essere presente con versioni diverse di Java, tipo quella che arriva insieme ad internet explorer: prendi cmq questa "soluzione" con le pinze perchè ho tirato un po' ad indovinare.
Grazie 1000
:)
Fra poco ti farò un'altra domanda :confused:
Chiedo un'altra cosa, se tramite una servlet di login ho creato una session, c'è modo per l'applet di prendere lo username della session, per esempio come stringa?
"uppo" la discussione, io non ho mai programmato servlet a parte sporadiche sortite per curiosità.
&Ciao.
Ma il mio problema non è nella servlet ma nell'applet, è li che avrei bisogno di recuperare le informazioni della session, ma non so se sia possibile mi sembra di non avere visto niente al riguardo.
Eccheè sta session? (tanto per dire quanto ne so).
A naso direi che la comunicazione è possibile, un Applet gestisce i flussi di input e output sopratutto (ma non solo) attraverso gli URL, sapendo l'indirizzo del (o della) Servlet dovrebbe essere possibile connettere Servlet e Applet perchè, se non ricordo male, una Servlet ha qualcosa tipo un HTTPStream o HTTPRequest da cui ricavare un flusso di input-output. Però sono cose che dico così, sarebbe meglio ascoltare la voce di chi ne sa qualcosa.
visto che nessuno risponde mi sa che qui non lo sanno!!
A occhio (ma non prendete per oro colato, non curo io quella parte del progetto) la session è quella cosa che si crea quando fai il login, che ti permette di andare da una pagina a un'altra di un sito rimanendo loggato :)
Magari se cerchi di essere + chiaro possiamo anche provare a rispondere...
Ad una servlet puoi passare quanti e quali parametri vuoi, per riprenderli in un qualunque momento esistono poi 200 modi, magari inizializzando un hashtable al momento dell'avvio dell'apache...
Dunque il tutto dovrebbe funzionare + o - così :
il mio utente fa il login e la loginServlet crea una session e setta un'attributo in cui salva il nome utente e redirige il browser sulla pagina dove io ho l'applet.
A questo punto la mia applet dovrebbe riuscire a leggere il nome utente direttamente dall'attributo che ho settato prima: è possibile?
:mc: grazie...
Il response di una server può essere una pagina testo o html
response.setContentType("text/html")
dove response è un oggetto HttpServletResponse.
Perciò l'unica soluzione è quella di creare a runtime la pagina dell'applet o quanto meno modificarla a runtime...
potresti passare all'applet il parametro contenente il nome utente modificando la pagina html che contiene l'applet.
Oppure la tua applet potrebbe contenere del codice che va a leggere questi parametri da un fle testo creato dalla servlet.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.